[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Цикл while
asdf27
Хотелось написать правильно, но не пойму, в чем проблема:

Если писать так

 $result=mysql_query("SELECT * FROM naprav");
$myrow=mysql_fetch_array($result);
while ($myrow=mysql_fetch_array($result)) {
echo $myrow[title].'<br>';
}


выводит только одну запись, и то, с конца.

Если так

$result=mysql_query("SELECT * FROM naprav");
$myrow=mysql_fetch_array($result);
do {
echo $myrow[title].'<br>';
}
while ($myrow=mysql_fetch_array($result));


то всё ок. Что не так в первом примере?



Спустя 3 минуты, 42 секунды (13.08.2012 - 22:26) SerginhoLD написал(а):
Цитата (asdf27 @ 13.08.2012 - 20:22)
то всё ок. Что не так в первом примере?

2-ая строка, почитай что делает функция

Спустя 1 минута, 45 секунд (13.08.2012 - 22:28) Игорь_Vasinsky написал(а):
$query = mysql_query($sql);

if(mysql_num_rows($query))
{
while($row = mysql_fetch_assoc($query))
{
echo $row['name_cell'];
}
}

else
echo 'Not results found';

Спустя 7 секунд (13.08.2012 - 22:28) inpost написал(а):
$myrow=mysql_fetch_array($result); - убери.

Спустя 7 минут, 29 секунд (13.08.2012 - 22:35) asdf27 написал(а):
- - -

Спустя 6 минут, 5 секунд (13.08.2012 - 22:41) Игорь_Vasinsky написал(а):
покажи как использовал - это 100% эффект

Спустя 21 секунда (13.08.2012 - 22:42) inpost написал(а):
asdf27
В твоём случае глупо, потому что лишние строки пишешь. do-while используется тогда, когда ты операцию делаешь в любом случае, и только если результат её выполнения тебе не нравится - зацикливаешь до удачи.

Спустя 1 минута, 23 секунды (13.08.2012 - 22:43) asdf27 написал(а):
Неправильно выбрал функцию, нужно mysql_fetch_assoc

 $result=mysql_query("SELECT * FROM naprav");
while ($myrow=mysql_fetch_assoc($result)) {
echo $myrow[title].'<br>';



Пока вы все тут... такая байда с базой:

На apache висит база, по-умолчанию стоит UTF-8 (не уверен). Всем полям задана кодировка UTF-8, скрипт так же кодирован в UTF-8.

При записи, в базе появляются кракозябры вида "Нужна поклейка обоев" (видимо, cp1251). Чтение из базы идет нормально в UTF-8.

Куда копать?

Спустя 8 минут, 14 секунд (13.08.2012 - 22:51) Игорь_Vasinsky написал(а):
в моём журнале пост про кракозябры. почитай.

+ if(mysql_num_rows($query)) - я не просто так написал, в этом есть смысл

Спустя 23 минуты, 9 секунд (13.08.2012 - 23:14) asdf27 написал(а):
Это для того, что если записей 0, то выдало соответствующее сообщение? А в журнал сейчас копну, спасибо.

Спустя 13 минут, 5 секунд (13.08.2012 - 23:27) asdf27 написал(а):
По рекомендации ячейки выставил в UTF8_bin, теперь все записи вижу в "[BLOB - 50B] [BLOB - 15B] [BLOB - 60B] [BLOB - 45B] [BLOB - 64B] [BLOB - 12B]"

Может как и таблицу, в utf8_general_ci? Выводит нормально, только буква "ш" не читается.

Спустя 6 минут, 5 секунд (13.08.2012 - 23:34) Invis1ble написал(а):
utf8_general_ci

Спустя 3 минуты, 51 секунда (13.08.2012 - 23:37) asdf27 написал(а):
Замена не помогла, еще и БД снова корявой кодировкой наполнилась. Проблема с "ш" также осталась.

Спустя 6 часов, 27 минут, 59 секунд (14.08.2012 - 06:05) Игорь_Vasinsky написал(а):
если все пункты из поста в моём журнале соблюдены - то всё пучком будет. ты что-то упустил.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.