Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > while вывод только 2 или 4 элементов


Автор: denis7777777 3.12.2012, 13:38
Всем привет, есть такой код: 
Код

<?php
$category_id = ( isset( $category_id ) ) ? intval( $category_id ) : false;
if ($category_id){
    $query = $db->query( "SELECT dle_post.id, dle_post.title, dle_post.category, dle_post.alt_name, 
(select dle_images.images  FROM dle_images where  dle_images.news_id = dle_post.id) as images_images 
FROM dle_post where dle_post.category = '$category_id' and dle_post.recom='1' order by RAND()"  );
    
    $rows =  $db->get_row($query);
    while ( $row = $db->get_row($query) ) {
        echo  $row['id']."<br />";
    
    }
}

Сейчас этот код выводит все id.
Подскажите пожалуйста как сделать что бы выводило только 2 или 4 элемента из базы.
Например если  в ответе sql сервера есть 4 значения - выводим их, если нет, выводим 2(если опять же они есть), если нет 2, не выводим ничего. как то так.  smile 

Автор: MoLeX 3.12.2012, 14:47
правильнее указать в sql LIMIT 4

Автор: denis7777777 3.12.2012, 14:50
MoLeX, это допустим  укажу, а как выводить 2 или 4 записи?

Автор: zammar 3.12.2012, 17:04
Думаю вам лучше сделать limit 4 и уже в коде делать проверку.
Если конечно речь действительно о кол-ве не более 4. 

Иначе если данных много, нужно копать в сторону подзапросов ИМХО.

Автор: MoLeX 3.12.2012, 17:57
счетчик + проверка и break 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)