Почему выбирает всего одну строку а не все какие есть

Тема в разделе "Как сделать...", создана пользователем sx000, 7 ноя 2012.

  1. sx000

    sx000 Постоялец

    Регистр.:
    6 дек 2006
    Сообщения:
    139
    Симпатии:
    59
    PHP:
    $query "SELECT * FROM wp_eng_posts WHERE post_status = 'publish' AND post_type = 'post'";
    $res mysql_query($query) or die(mysql_error());
    $row mysql_fetch_array($res);
    print_r($row);
    Но строк намного больше а он выводит только первую найденую
     
  2. SolutionFix

    SolutionFix 17 лет програмлю ;)

    Регистр.:
    20 ноя 2006
    Сообщения:
    272
    Симпатии:
    318
    PHP:
    $query "SELECT * FROM wp_eng_posts WHERE post_status = 'publish' AND post_type = 'post'";
    $res mysql_query($query) or die(mysql_error());
    while(
    $row mysql_fetch_array($res)) {
        
    print_r($row);
    }
    За один раз mysql_fetch_array берет только один результат из выборки
     
  3. sx000

    sx000 Постоялец

    Регистр.:
    6 дек 2006
    Сообщения:
    139
    Симпатии:
    59
    а что надо использовать, mysql_fetch_assoc тоже не дает нужный вариант.
     
  4. SolutionFix

    SolutionFix 17 лет програмлю ;)

    Регистр.:
    20 ноя 2006
    Сообщения:
    272
    Симпатии:
    318
    А то что я тебе написал постом выше (через while) ты решил принципиально не применять? :)
     
  5. sx000

    sx000 Постоялец

    Регистр.:
    6 дек 2006
    Сообщения:
    139
    Симпатии:
    59
    вообще задача такова что мне надо сделать случайную выборку из Wordpress таблицы постов. Те нужно выбрать случайны пост который соответствуе
    wp_eng_posts WHERE post_status = 'publish' AND post_type = 'post'
    ORDER BY RAND() читал про него, многие пишут что оно LA просто сильно умножает на серваке. По этому вот ищу решение рандомной выборки постов.
     
  6. Leony

    Leony

    Регистр.:
    18 мар 2008
    Сообщения:
    153
    Симпатии:
    25
     
  7. sx000

    sx000 Постоялец

    Регистр.:
    6 дек 2006
    Сообщения:
    139
    Симпатии:
    59
    ORDER BY не каткит, сильно сервак грузит
     
  8. Leony

    Leony

    Регистр.:
    18 мар 2008
    Сообщения:
    153
    Симпатии:
    25
    Потому что mysql_fetch_array работает с текущим положением внутреннего указателя, который перемещается с каждым вызовом mysql_fetch_array.

    WHERE RAND()>0.9 ORDER BY RAND() значительно экономит ресурсы, хотя и сужает результаты выборки

    также можно попробовать
    SELECT FIRST 1 * FROM wp_eng_posts ORDER BY rand()

    или добавить LIMIT 1 в конце

    23.11.2012: Здесь интересное обсуждение топика.