データベースから SELECT し、結果を確認してから while ループで行を出力する方法を探しています (結果がゼロより大きい場合)
別のカウントクエリの使用を本当に避けたい
現在、私はこれを使用しています:
$sql = 'SELECT id, username, usercity, usercountry FROM siteusers WHERE userage > 50';
$STH = $conn->query($sql);
$arr = $STH->fetchAll();
if (count($arr) > 0) {
echo '<div id="users">';
foreach ($arr as $row) {
echo '<h1>'.$row['username'].</h1>';
}
echo '</div>';
}
できます。しかし、fetchAll とカスタム for-each ループを使用せずに、結果/numrows をチェックして行をループする方法はありませんか?
それとも全く関係ないですか?(for-each は while ループと同じくらい良いですか?)
このようにすると、最初の行は while ループに含まれません。
$sql = 'SELECT id, username, usercity, usercountry FROM siteusers WHERE userage > 50';
$STH = $conn->query($sql);
if ($row = $STH->fetch()) {
echo '<div id="users">';
while ($row = $STH->fetch()) {
echo '<h1>'.$row['username'].</h1>';
}
echo '</div>';
}
編集:動的レイアウトの目的で、結果を確認する必要があります