У меня есть запрос fetch_assoc, который захватит 14 строк, но я хочу, чтобы результат FIRST отображался так, что он отличается от других, тогда остальные просто обычные.
$site_events = $db->query("SELECT * FROM site_events ORDER BY time ASC limit 14"); while($events = $site_events->fetch_assoc()) { if( first result???? ) { //this is where im stuck echo $events['title'], 'FIRST RESULT'; } //then display others like a normal list.. echo $events['title'], '<br />'; }
Вы можете получить первую строку за пределами «while», а затем продолжить в обычном режиме. Но сначала вы должны, вероятно, проверить, выбраны ли данные на всякий случай:
$site_events = $db->query("SELECT * FROM site_events ORDER BY time ASC limit 14"); if($db->field_count){ $event = $site_events->fetch_assoc(); echo $event['title'], 'FIRST RESULT'; while($events = $site_events->fetch_assoc()) { //then display others like a normal list.. echo $events['title'], '<br />'; } }
Я основывался на ответе Ятина Триведи, но удалял приращение переменной, которую я не установил. Вы не заметите разницы, но это немного быстрее. Это связано с тем, что $i++
не нужно называть каждой итерацией. Кроме того, unset()
работает очень быстро. Изменить: этот ответ начался с $i=0
и $i++
, теперь он больше не работает 🙂
$hasNotLooped = true; // set it before you run the loop $site_events = $db->query("SELECT * FROM site_events ORDER BY time ASC limit 14"); while($events = $site_events->fetch_assoc()) { if( $hasNotLooped ) { echo $events['title'], 'FIRST RESULT'; unset($hasNotLooped); } //then display others like a normal list.. echo $events['title'], '<br />'; }
с$hasNotLooped = true; // set it before you run the loop $site_events = $db->query("SELECT * FROM site_events ORDER BY time ASC limit 14"); while($events = $site_events->fetch_assoc()) { if( $hasNotLooped ) { echo $events['title'], 'FIRST RESULT'; unset($hasNotLooped); } //then display others like a normal list.. echo $events['title'], '<br />'; }
$tmp=true; $site_events = $db->query("SELECT * FROM site_events ORDER BY time ASC limit 14"); while($events = $site_events->fetch_assoc()) { if( $tmp) { //this is where im stuck echo $events['title'], 'FIRST RESULT'; $tmp=false; } else { //then display others like a normal list.. echo $events['title'], '<br />'; } }