MySQL заявления, есть ли способ улучшить это? - PullRequest
1 голос
/ 07 сентября 2011

У меня есть две таблицы account и friend_requests, вот мой код ...

$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>';
    }
}

Вы заметите, что я проверяю, если кто-то запросил дружбу с пользователем в первом операторе sql, используя rowCount (), если есть совпадение строк, я извлекаю идентификатор из первой таблицы, чтобы отобразить информацию о пользователях. из учетной записи, есть ли лучший способ сделать это с объединениями при использовании rowcount ??

1 Ответ

3 голосов
/ 07 сентября 2011
$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}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...