вывод вопросов

Тема в разделе "Базы данных", создана пользователем CasperKZ, 18 ноя 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. CasperKZ

    CasperKZ Читатель

    Заблокирован
    Регистр.:
    19 окт 2008
    Сообщения:
    13
    Симпатии:
    0
    Здрасте всем, помоги плиз...
    есть БД... в ней поля... (ID DATE 1 2 3 4) допустим...
    как мне сделать вывод... рандомом допустим чтоб в таком виде:
    Дата: {здесь выводилась из таблицы DATE}
    А - выводим то что в поле 1
    В - выводим то что в поле 2
    С - выводим то что в поле 3
    D - выводим то что в поле 4 .....

    тоесть выводил бы он строку
    ID DATE 1 2 3 4
    1 21 в ы а п
    только как я вверху написал...
    помогите пожалуйста.....

    PS желательно рандомом... чтоб каждый раз после перезагрузки страницы считывал разные строки
     
  2. Crazy108

    Crazy108 Создатель

    Регистр.:
    6 сен 2008
    Сообщения:
    45
    Симпатии:
    7
    при загрузке страницы делать следующие дейсва:

    выбираем все ID поля записей среди которыйх мы будем делать рандом
    2) из полученного массива выбираем список ID записей (рандомом)
    3) делаем выборку из базы данных всез хаписей из полученного рандомом списка по ID
     
  3. rellikso

    rellikso Писатель

    Регистр.:
    3 ноя 2008
    Сообщения:
    5
    Симпатии:
    0
    Как вариант: выбираем записи, отсортированные по ID, например, и к полученному массиву применяем shuffle()...
     
  4. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Бред, RAND() есть в MySQL.
    Код:
    SELECT * FROM table ORDER BY RAND() LIMIT 1;
     
  5. Ceyce

    Ceyce Постоялец

    Регистр.:
    3 ноя 2008
    Сообщения:
    52
    Симпатии:
    51
    Задача не совсем ясна.

    Я перечитал пару раз, и понял что вариант один из двух:
    1. Надо получить все записи с таблицы, и перемешать их.
    2. Надо получить 1 запись с таблицы, и перемешать значения ее полей.
     
  6. CasperKZ

    CasperKZ Читатель

    Заблокирован
    Регистр.:
    19 окт 2008
    Сообщения:
    13
    Симпатии:
    0
    Ceyce
    надо получить строку ,например, 1-ю.... а рандом
    чтоб получать строку 2-ю, 5-ю, 6-ю.... и так далее...
    тоесть 1-й раз например выводил
    ID DATE 1 2 3 4
    1 21 в ы а п

    а во второй раз уже другую строку
    ID DATE 1 2 3 4
    6 26 ы к ф п
    вот примерно так...

    Или чтоб понятней было вот так объясню:
    таблица выглядит вот так:
    ID Вопрос A B C D
    1 Вопрос #1 12 13 14 15
    2 Вопрос #2 15 17 18 41

    мне надо зделть чтобы выводило вопросы рандомом.... ну а пункты ABCD выводились соответственно вопросу... то есть считывалась строка...
     
  7. Wentix

    Wentix Создатель

    Регистр.:
    26 авг 2008
    Сообщения:
    29
    Симпатии:
    14
    Пробуй так:

    PHP:
    <?php

    mysql_connect
    ('localhost''root''password');
    mysql_select_db('quest');

    $countids mysql_num_rows(mysql_query('SELECT * FROM voprosi'));
    $mixid rand('1'$countids);

    $result mysql_query('SELECT * FROM voprosi WHERE id=\''.$mixid.'\'');
    $qres mysql_fetch_array($result);

    echo 
    $qres['id'].'<br/>'.$qres['vopros'].'<br/>'.$qres['A'].'<br/>'.$qres['B'].'<br/>'.$qres['C'].'<br/>'.$qres['D'];

    ?>
     
    CasperKZ нравится это.
  8. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    591
    Парни, вы бредите или глаза залипли?
    Хватит писать всякую чушь, написано же
    Код:
    SELECT * FROM 'имя_таблицы' ORDER BY RAND() LIMIT 1;
    Wentix, и что выполнит твой код, если скажем у меня 10 записей, но id начинается с 100?
     
  9. CasperKZ

    CasperKZ Читатель

    Заблокирован
    Регистр.:
    19 окт 2008
    Сообщения:
    13
    Симпатии:
    0
    Wentix, СПС.. чуть позже проверю....

    PHP_Master, ты конечно извени... я понимаю что ты крут и знаешь что почём.... но почему бы не помочь?!
     
  10. Eihwaz

    Eihwaz

    Регистр.:
    7 окт 2007
    Сообщения:
    156
    Симпатии:
    54
    Так он и помог:
    PHP:
    SELECT FROM table ORDER BY RAND() LIMIT 1;
    Этот запрос как раз все верно и сделает.
    В примере, который привел Wentix не учитывается, что у Вас ID могут идти не упорядочено (1,2,3,4...) а с пропусками, если записи удалялись из БД, т.е., код Wentix'a иногда будет выводить нужные Вам данные, а иногда нет - если у вас ID идут, скажем, так: (5,15,34,127,134)
     
Статус темы:
Закрыта.