|
|
|
| Всем привет!
В БД, а таблице, есть три записи:
id note
1 1 запись
2 2 запись
3 3 запись
|
если выбрать все записи из таблицы и вывести их в цикле while,
$query = ("SELECT * FROM tbl");
$res = mysql_query($query);
if(!$res) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($res) > 0) $arres = mysql_fetch_array($res);
<?
while($arres = mysql_fetch_array($res)){
print $notes = $arres[note],;
}
?>
|
то получится следующее:
2 запись, 3 запись, 3 запись
|
а в случае с do while
<?
do{
print $notes = $arres[note],;
}while($arres = mysql_fetch_array($res));
?>
|
1запись, 2 запись, 3 запись, 3 запись
|
Почему дублируется последний элемент?? | |
|
|
|
|
|
|
|
для: *m*
(02.11.2011 в 18:35)
| | а может
print $arres[note],; | |
|
|
|
|
|
|
|
для: Jovidon
(02.11.2011 в 20:41)
| | не очень вас понимаю | |
|
|
|
|
|
|
|
для: *m*
(02.11.2011 в 21:07)
| |
<?php
$query = ("SELECT * FROM tbl");
$res = mysql_query($query);
if(!$res) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($res) > 0) $arres = mysql_fetch_array($res);
do{
print $arres[note],;
}
while($arres = mysql_fetch_array($res));
?>
|
| |
|
|
|
|
|
|
|
для: *m*
(02.11.2011 в 18:35)
| | Почему у вас этот кусок
$query = ("SELECT * FROM tbl");
$res = mysql_query($query);
if(!$res) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($res) > 0) $arres = mysql_fetch_array($res);
|
не в ходит в <? ?>
зачем вам эта конструкция?
if(mysql_num_rows($res) > 0) $arres = mysql_fetch_array($res);
|
в общем то вот такая конструкция отлично все выводит
<?php
$query = "SELECT * FROM test";
$res = mysql_query($query);
if(!$res) exit("Ошибка - ".mysql_error());
if(mysql_num_rows($res) > 0){
while($arres = mysql_fetch_array($res)){
echo $arres[note];
}
}
?>
|
| |
|
|
|
|
|
|
|
для: KPETuH
(02.11.2011 в 22:31)
| | Не понимаю, вы и Jovidon привели тот же самый код по сути, работает он точно также как и мой, то есть дублирует последнюю запись, в этом вопрос, почему? | |
|
|
|
|
|
|
|
для: *m*
(02.11.2011 в 23:01)
| | у меня ничего не дублируется может приведете дамп таблицы и весь ваш код? | |
|
|
|
|
|
|
|
для: *m*
(02.11.2011 в 23:01)
| | Потому что do ... while() проверяет условие после того, как отработает тело цикла, здесь его лучше не использовать. Вместо него лучше использовать обычный while(), как у вас в первом варианте, только убрав перед ним лишний вызов mysql_fetch_array(). | |
|
|
|