2011-09-07 21 views
1

我有兩個表帳戶和friend_requests,這裏是我的代碼...Mysql語句,是否有改進的方法?

$q = $dbc -> prepare("SELECT * FROM friend_requests WHERE id_to = ?"); 
$q -> execute(array($details['id'])); 
$account = $q -> fetch(PDO::FETCH_ASSOC); 
$result = $q -> rowCount(); 
if ($result < 1) { 
    echo '<p>You haven\'t asked or been asked to be friends with anyone yet.</p><p>This is where you can accept or deny friend requests.</p>'; 
} 
else { 
    $q = $dbc -> prepare("SELECT * FROM accounts WHERE id = ?"); 
    $q -> execute(array($account['id'])); 
    while ($request = $q -> fetch(PDO::FETCH_ASSOC)) { 
     echo '<p>' . $request['username'] . ' has requested to be friends with you.</p>'; 
    } 
} 

你會發現通過使用rowCount時我檢查,看是否有人已請求成爲朋友,在第一個SQL語句的用戶()如果有一個行匹配我拉第一個表中的ID來顯示該帳戶的用戶信息,有沒有更好的方法來做到這一點與連接,而使用rowcount?

回答

3
$q = $dbc -> prepare ("SELECT a.* 
FROM accounts a 
INNER JOIN friend_requests fr ON (a.id = fr.id) 
WHERE fr.id_to = ?"); 
... 
if (!$q -> rowCount()) 
{ 
    echo 'No requests'; 
} 
else 
while ($request = $q -> fetch(PDO::FETCH_ASSOC)) { /// output} 
+0

我該怎麼做行數?我是新來的:) – carlgcode

+0

你還可以做'$ q-> rowCount()'。 – a1ex07

+0

好的,謝謝我會試試這個,我真的需要學習這些,我一直在使用tizag和w3schools,但他們是不好的例子 – carlgcode

相關問題