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

Форум MySQL

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

 

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

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

тема: mysql_fetch_row()
 
 автор: THERAPYbrother   (25.01.2008 в 18:39)   письмо автору
 
 

У меня эта функция записывает в масств только одно первое всретившееся значение/
Я уже пробовал даже
SELECT id FROM table

все равно в массиве оказывается только одно значение 1.у меня с него начинается в таблице.
Скажите,что я не так делаю?

   
 
 автор: not detected   (25.01.2008 в 19:40)   письмо автору
 
   для: THERAPYbrother   (25.01.2008 в 18:39)
 

А что ещё ты там хочешь увидеть? Сюда по тому запросу что ты привел там и будет только столбец id :)
..результаты выборки можно просмотреть так

<?php
...
$sqlres=mysql_query('SELECT id FROM table');
$total=mysql_num_rows($sqlres);
for(
$i=0$i<$total$i++){
$row=mysql_fetch_row($sqlres);
echo 
$row[0].'<br/>';
}
?>

   
 
 автор: Faraon   (25.01.2008 в 20:34)   письмо автору
 
   для: THERAPYbrother   (25.01.2008 в 18:39)
 

<?php
...
$sqlres=mysql_query('SELECT id FROM table');
while(
$row mysql_fetch_row($sqlres)){
echo 
$row[0].'<br/>';
}
?>

   
 
 автор: THERAPYbrother   (25.01.2008 в 22:58)   письмо автору
 
   для: Faraon   (25.01.2008 в 20:34)
 

Давайте сначала
запрос типа
SELECT id FROM table WHERE name='Sasha';


например, где имя Саша, вот такие id 17,29,48
должен же получится массив такой

array( 0 => 17,
           1 => 29,
           2 => 48)
         


Так ведь?или я все перепутал?

   
 
 автор: Trianon   (26.01.2008 в 01:51)   письмо автору
 
   для: THERAPYbrother   (25.01.2008 в 22:58)
 

Сам по себе запрос не формирует массив .
Cформировать массив может Ваш php-код, обработав результат запроса.

   
 
 автор: THERAPYbrother   (26.01.2008 в 18:21)   письмо автору
 
   для: Trianon   (26.01.2008 в 01:51)
 

ну это я понимаю.
вот пример.

<?php
$sql
="SELECT id FROM table WHERE name='Sasha'";
$result=mysql_query($sql);
$id=mysql_fetch_row($result);
?>


Должен получиться такой массив,который я привел выше,так?
Че-то я совсем запутался((

   
 
 автор: Unkind   (26.01.2008 в 18:42)   письмо автору
 
   для: THERAPYbrother   (26.01.2008 в 18:21)
 

> Должен получиться такой массив,который я привел выше,так?
Нет.

   
 
 автор: Trianon   (26.01.2008 в 19:38)   письмо автору
 
   для: THERAPYbrother   (26.01.2008 в 18:21)
 

Вы запрашиваете результирующую таблицу из нескольких (видимо трех) строк и одного столбца.

Один вызов функции mysql_fetch_... возвращает лишь одну строку результирующей таблицы.

В Вашем случае - с одним значением (выбираемый столбец-то один - id)

Чтобы получить всю таблицу, нужно вызывать fetch-функцию в цикле. Это я и назвал минимальным php-кодом.

<?php
$sql
="SELECT id FROM table WHERE name='Sasha'";
$result=mysql_query($sql);
for(
$id = array(); $row=mysql_fetch_row($result); )
{
   
$col0 $row[0];
   
$id[] = $col0
};
?>

   
 
 автор: THERAPYbrother   (26.01.2008 в 23:46)   письмо автору
 
   для: Trianon   (26.01.2008 в 19:38)
 


>Один вызов функции mysql_fetch_... возвращает лишь одну строку результирующей таблицы. 


как раз проблема и состояла в том,что я не знал про то,что функция возвращает только один результат и надо вызывать ее в цикле.

   
 
 автор: Trianon   (27.01.2008 в 01:26)   письмо автору
 
   для: THERAPYbrother   (26.01.2008 в 23:46)
 


array mysql_fetch_row ( resource $result )

Возвращает массив, содержашей данные обработанного ряда, или FALSE, если рядов больше нет.
mysql_fetch_row() обрабатывает один ряд результата, на который ссылается переданный указатель. Ряд возвращается в массиве. Каждая колонка распологается в следующей ячейке массива. Массив начинается с индекса 0.

Последующие вызовы функции mysql_fetch_row() вернут следующие ряды или FALSE, если рядов не осталось.


http://ru2.php.net/mysql_fetch_row

   
 
 автор: Faraon   (26.01.2008 в 21:10)   письмо автору
 
   для: THERAPYbrother   (26.01.2008 в 18:21)
 

>Че-то я совсем запутался((

Да Вы не запутались, Вы просто себе строите проблемы!
Уже были предложены варианты разбор запроса в циклах.

   
 
 автор: Unkind   (26.01.2008 в 22:29)   письмо автору
 
   для: Faraon   (26.01.2008 в 21:10)
 

Иногда такое насоветуют...Лучше бы молчали...
Поэтому лучше действительно разобраться, а не тупо копировать чужой код.

   
 
 автор: Faraon   (27.01.2008 в 20:19)   письмо автору
 
   для: Unkind   (26.01.2008 в 22:29)
 

Кто здесь тупо копировал код?
Запрос автора изначально:
SELECT id FROM table
Как Вы понимаете, что он должен вывести в цикле.
Подрузамеваю что имено все id и больше ничего.
И Насоветовал я нормально, что функцию mysql_fetch_row, надо вызывать в цикле!

А задачу надо ставить не вобщем, как то так, а конкретно!

   
 
 автор: jbs   (26.01.2008 в 02:58)   письмо автору
 
   для: THERAPYbrother   (25.01.2008 в 22:58)
 

.

   
Rambler's Top100
вверх

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