сохранение столбца в массиве - PullRequest
0 голосов
/ 12 июня 2009

Я пытаюсь выбрать случайное нет. записей из базы данных с помощью

SELECT QNO FROM TABLE  ORDER BY RAND() LIMIT 10

возвращает столбец базы данных.

Если я хочу сохранить все записи в массиве, то какую функцию php мне нужно использовать для сохранения столбца.

Ответы [ 5 ]

2 голосов
/ 12 июня 2009

Что-то в этом роде?

$result = mysql_query("SELECT QNO FROM TABLE ORDER BY RAND() LIMIT 10");
$rows = array();
while ($row = mysql_fetch_row($result)) {
    $rows[] = $row[0];
}

Обновлено, чтобы не использовать переменную $ i, как указано в первом сообщении и комментарии.

1 голос
/ 12 июня 2009

с PDO:

$qryStmt = $dbc->query('SELECT QNO FROM TABLE ORDER BY RAND() LIMIT 10');
$a = $qryStmt->fetchAll( PDO::FETCH_COLUMN );
1 голос
/ 12 июня 2009

Посмотрите на некоторые примеры того, как выполнить запрос и получить набор результатов.

http://www.php.net/mysqli

Получив результат в переменной, сделайте следующее:

$myarray = array();
while($row = mysqli_fetch_row($result))
   $myarray[] = $row[0];
0 голосов
/ 12 июня 2009

последний: не путайте «случайное» с «трудно предсказуемым», что не одно и то же. Таким образом, порядок в примере «выберите топ 10 ... order by rand ()» в SQLServer приводит к двум различным наборам результатов при двойном запуске, НО: если вы посмотрите на 10 записей, они лежат близко друг к другу в БД, что означает, что они не случайны.

0 голосов
/ 12 июня 2009

Кстати: если вы просто хотите получить одну строку случайным образом, это намного быстрее, особенно. для больших столов:

выберите * из предела таблицы 12345,1;

, где 12345 - это просто случайное число, вычисленное из количества () строк.

см. Здесь , что больше для рельсов, но взгляните и на комментарии.

Но будьте осторожны: в пределах 12345,2 - вторая строка не случайная, а просто следующая строка после случайной строки. И будьте осторожны: если я правильно помню (например, SQLServer), rand () может быть оптимизирован базами данных, отличными от mysql, что приводит к одинаковому случайному числу для всех строк, что делает результат не случайным. Это важно, когда ваш код должен быть независим от базы данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...