Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: SQL-запросы
 
 автор: revis0r   (05.04.2005 в 21:13)
 
 

Столкнулся с такой проблемой: SQL-запрос такого вида:
SELECT nickname FROM users WHERE id > 0
не работает как надо. По идее он должен выделить все ники пользователей, у которых id > 0, но он выделяет только пользователя с id=1.
Код такой:

$query = "SELECT nickname FROM users WHERE id>0";
$res = mysql_query($query);
$row = mysql_fetch_array($res);
print($row[1]);

Если делать такой запрос из командной строки стандартным скулевым клиентом, то все пашет.

   
 
 автор: Akira   (05.04.2005 в 21:31)   письмо автору
 
   для: revis0r   (05.04.2005 в 21:13)
 

Простите, а зачем вам это? Разве есть ники меньше нуля?

$query = "SELECT nickname FROM users"; 
$res = mysql_query($query); 
$row = mysql_fetch_array($res); 
print_r($row);

Выводит в $row одномерный массив со всеми никами.

   
 
 автор: cheops   (05.04.2005 в 22:26)   письмо автору
 
   для: revis0r   (05.04.2005 в 21:13)
 

Дело в том, что функция mysql_fetch_array возвращает только одну запись, для извлечения всех записей из ответа базы данных, необходимо использовать цикл.
<?php
  $query 
"SELECT nickname FROM users WHERE id>0"
  
$res mysql_query($query); 
  while(
$row mysql_fetch_array($res))
  {
    print(
$row[1]);
  }
?>


http://www.softtime.ru/dic/id_dic=97&id_group=2

   
 
 автор: revis0r   (06.04.2005 в 17:21)
 
   для: cheops   (05.04.2005 в 22:26)
 

Спасибо, все понял, только как теперь сделать фунцию, типа этой, ведь в качестве результата не может быть массив?

function fetch($query)
{
$res = mysql_query($query);
if($res)
{
while($row = mysql_fetch_array($res)) 
  { 
    $result[$i] = $row[0]; 
    $i++;
  } 
}
return $result;
}

   
 
 автор: cheops   (07.04.2005 в 00:08)   письмо автору
 
   для: revis0r   (06.04.2005 в 17:21)
 

>ведь в качестве результата не может быть массив?
Почему нет, в PHP это вполне допустимо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования