Вывод рандомных данных из БД

  • Автор темы Автор темы volt
  • Дата начала Дата начала

volt

Новичок
Здравствуйте!
Подскажите, пожалуйста в таком вопросе.
Нужно вынуть 1 произвольную строку с таблицы БД.
Вот код:

PHP:
  $q="Select SQL_CALC_FOUND_ROWS * from citizen";
  $res=$db->query($q);
  $sum=mysql_num_rows($res);
  $q="Select * from citizen LIMIT ".rand(0,$sum).", 1";

но в итоге получается что данные со строкой из 10 раз выводятся только раз 8. Наверное где-то закралась ошибка или я не очень понимаю rand(). Подскажите, почему данные не всегда выводятся? Что может быть в
PHP:
LIMIT ".rand(0,$sum).", 1
когда данные из таблицы вообще не хотят выниматься?

И второй вопрос - при использовании count(*) вместо SQL_CALC_FOUND_ROWS вообще выдается все время 1, тогда как в таблице строк много.

Вывод при count(*) пытался сделать так:
PHP:
  $q="Select count(*) from citizen";
  $res=$db->query($q);
  $sum = mysql_fetch_row($res);
но здесь sum все время выдает 1

Спасибо.
 
Занимайтесь отладкой, выводите промежуточные результаты.
 
У Вас там одна сплошная ошибка закралась. Поищите в яндексе, я сразу нашел готовый пример с разъяснениями как сделать то, что Вы хотите.
 
Сверху