$table = "SELECT * FROM verbs";
while($row = mysql_fetch_assoc(mysql_query($table)))
{
echo "<tr>";
echo "<td>".$row['first']."</td>";
echo "<td>".$row['second']."</td>";
echo "<td>".$row['third']."</td>";
echo "<td>".$row['ing']."</td>";
echo "<td>".$row['translate']."</td>";
echo "</tr>";
}
Почему цикл бесконечный? Чего не хватает?
Спустя 1 минута, 36 секунд (27.12.2010 - 20:49) inpost написал(а):
Какое у тебя условие стоит в цикле? Объясни по полочкам =)
Спустя 3 минуты, 3 секунды (27.12.2010 - 20:53) Invis1ble написал(а):
DmitryOpalev
при каждой итерации у тебя выполняется запрос заново )
Вот к чему приводит желание сократить объём кода =)
при каждой итерации у тебя выполняется запрос заново )
Вот к чему приводит желание сократить объём кода =)
Спустя 1 минута, 7 секунд (27.12.2010 - 20:54) sharki написал(а):
DmitryOpalev
Что у тебя за извращения такие О_о mysql_fetch_assoc(mysql_query($table)) мог бы нормально записать и всё норм было, но сначала ответь inpost
Что у тебя за извращения такие О_о mysql_fetch_assoc(mysql_query($table)) мог бы нормально записать и всё норм было, но сначала ответь inpost
Спустя 9 секунд (27.12.2010 - 20:54) DmitryOpalev написал(а):
Ну блин...
написал:
цикл пришел в норму... почему так?
написал:
$table = mysql_query("SELECT * FROM verbs");
while($row = mysql_fetch_assoc($table))
{
echo "<tr>";
echo "<td>".$row['first']."</td>";
echo "<td>".$row['second']."</td>";
echo "<td>".$row['third']."</td>";
echo "<td>".$row['ing']."</td>";
echo "<td>".$row['translate']."</td>";
echo "</tr>";
}
цикл пришел в норму... почему так?
Спустя 49 секунд (27.12.2010 - 20:55) sharki написал(а):
DmitryOpalev
У тебя в одном false в другом true =) хоть и в базе уже ничего не будет
У тебя в одном false в другом true =) хоть и в базе уже ничего не будет
Спустя 57 секунд (27.12.2010 - 20:56) inpost написал(а):
DmitryOpalev
Ты понимаешь, что происходило внутри условия цикла? Если нет, то в поиске почитай про цикл while. Если понимаешь, объясни, что ты там написал?
Ты понимаешь, что происходило внутри условия цикла? Если нет, то в поиске почитай про цикл while. Если понимаешь, объясни, что ты там написал?
Спустя 38 секунд (27.12.2010 - 20:56) DmitryOpalev написал(а):
Господи... задавили
Выполняется, пока условие true
Выполняется, пока условие true
Спустя 1 минута, 56 секунд (27.12.2010 - 20:58) inpost написал(а):
$res = mysql_query($table);
$row = mysql_fetch_assoc($res);
В каком случае вернёт false? Вот запусти этот код 5 000 раз, когда вернётся false?
Спустя 47 секунд (27.12.2010 - 20:59) DmitryOpalev написал(а):
Насколько я понимаю... хотя может и нет...
Когда запись может вытащится из базы, и присваивается в массив $row условие правиотное (true) ?
P.S. это на прошлые ответы
Когда запись может вытащится из базы, и присваивается в массив $row условие правиотное (true) ?
P.S. это на прошлые ответы
Спустя 2 минуты, 11 секунд (27.12.2010 - 21:01) DmitryOpalev написал(а):
Цитата |
$res = mysql_query($table); $row = mysql_fetch_assoc($res); В каком случае вернёт false? Вот запусти этот код 5 000 раз, когда вернётся false? |
После первого раза... ну я проверил ... я запутался короче
Спустя 59 секунд (27.12.2010 - 21:02) inpost написал(а):
За такой ответ ты бы получил двойку на уроке, особенно когда 3 месяца посещаешь лекции.
Ответ должен был быть таким: Я делаю обращение к БАЗЕ ДАННЫХ, потом вынимаю первый элемент - выполняется тело цикла, возвращаюсь к условию и... ОБРАЩАЮСЬ К БД и ВЫТЯГИВАЮ ПЕРВЫЙ ЭЛЕМЕНТ, затем тело цикла, снова Обращаюсь к БД и вытягиваю ПЕРВЫЙ(!!!) Элемент.
Первый элемент будет существовать всегда, значит цикл бесконечный.
Ответ должен был быть таким: Я делаю обращение к БАЗЕ ДАННЫХ, потом вынимаю первый элемент - выполняется тело цикла, возвращаюсь к условию и... ОБРАЩАЮСЬ К БД и ВЫТЯГИВАЮ ПЕРВЫЙ ЭЛЕМЕНТ, затем тело цикла, снова Обращаюсь к БД и вытягиваю ПЕРВЫЙ(!!!) Элемент.
Первый элемент будет существовать всегда, значит цикл бесконечный.
Спустя 1 минута, 8 секунд (27.12.2010 - 21:03) DmitryOpalev написал(а):
А, типа он всегда может вырвать первый элемент => всегда будет его вытягивать?
Спустя 2 минуты, 49 секунд (27.12.2010 - 21:06) DmitryOpalev написал(а):
А чем тогда отличаются запросы?
Спустя 21 секунда (27.12.2010 - 21:06) Invis1ble написал(а):
DmitryOpalev
я тебе уже написал, ты при каждой итерации делаешь новый запрос к БД, в итоге получаешь новый дескриптор и, как следствие, такую карусель =)
я тебе уже написал, ты при каждой итерации делаешь новый запрос к БД, в итоге получаешь новый дескриптор и, как следствие, такую карусель =)
Спустя 2 минуты, 4 секунды (27.12.2010 - 21:08) DmitryOpalev написал(а):
Ммммм...
Так не работает:
Так работает:
или в этом и различие?
Так не работает:
$table = "SELECT * FROM verbs";
while($row = mysql_fetch_assoc(mysql_query($table)))
{
echo "<tr>";
echo "<td>".$row['first']."</td>";
echo "<td>".$row['second']."</td>";
echo "<td>".$row['third']."</td>";
echo "<td>".$row['ing']."</td>";
echo "<td>".$row['translate']."</td>";
echo "</tr>";
}
Так работает:
$table = mysql_query("SELECT * FROM verbs");
while($row = mysql_fetch_assoc($table))
{
echo "<tr>";
echo "<td>".$row['first']."</td>";
echo "<td>".$row['second']."</td>";
echo "<td>".$row['third']."</td>";
echo "<td>".$row['ing']."</td>";
echo "<td>".$row['translate']."</td>";
echo "</tr>";
}
или в этом и различие?
Спустя 1 минута, 30 секунд (27.12.2010 - 21:10) inpost написал(а):
mysql_fetch_assoc(mysql_query($table)) - связь какая? Запрос, взять первый элемент из запроса - return TRUE.
Снова запрос, взять первый элемент, return true.
Если ты из базы вытягиваешь 5 строк, то будет 5 элементов(строк), и перебор надо делать по ним, а не по обращению к Базе данных.
Код запусти:
Всегда будет TRUE, потому что каждый раз ты берёшь первую строку, а не переходишь на вторую
Снова запрос, взять первый элемент, return true.
Если ты из базы вытягиваешь 5 строк, то будет 5 элементов(строк), и перебор надо делать по ним, а не по обращению к Базе данных.
Код запусти:
$res = mysql_query($table);
$row = mysql_fetch_assoc($res);
$res = mysql_query($table);
$row = mysql_fetch_assoc($res);
$res = mysql_query($table);
$row = mysql_fetch_assoc($res);
$res = mysql_query($table);
$row = mysql_fetch_assoc($res);
$res = mysql_query($table);
$row = mysql_fetch_assoc($res);
$res = mysql_query($table);
$row = mysql_fetch_assoc($res);
$res = mysql_query($table);
$row = mysql_fetch_assoc($res);
Всегда будет TRUE, потому что каждый раз ты берёшь первую строку, а не переходишь на вторую
Спустя 1 минута, 3 секунды (27.12.2010 - 21:11) inpost написал(а):
DmitryOpalev
Когда цикл не пройдет (вернётся false), с 10 раза или с 20-ого?
$a = 5;
while($a == 5).
Когда цикл не пройдет (вернётся false), с 10 раза или с 20-ого?
Спустя 2 минуты, 31 секунда (27.12.2010 - 21:14) DmitryOpalev написал(а):
Никогда... если a не изменяется...
Спустя 1 минута, 23 секунды (27.12.2010 - 21:15) inpost написал(а):
DmitryOpalev
Именно, а что в твоём случае будет менять? Тоже ничего, так как каждый раз ты будешь вынимать первую строку, которая всегда существует.
Именно, а что в твоём случае будет менять? Тоже ничего, так как каждый раз ты будешь вынимать первую строку, которая всегда существует.
Спустя 37 секунд (27.12.2010 - 21:16) DmitryOpalev написал(а):
А! Мы каждый раз берем первую запись, а так как я прописал mysql_fetch_assoc(mysql_query(...)) то он всегда будет обращатся к первой записи!!!
P.S. Я начала писать раньше =)
P.S. Я начала писать раньше =)
Спустя 1 минута, 10 секунд (27.12.2010 - 21:17) DmitryOpalev написал(а):
mysql_fetch_assoc($table) а так он обработает все записи! Да?
Спустя 3 минуты, 32 секунды (27.12.2010 - 21:20) inpost написал(а):
Он берёт первую запись не из общего (откуда-то созданного запроса), а из того, который прописал лично ты. Внутри цикла ты делаешь запрос к БД, и из него вынимаешь первую запись.
Само обращение надо отправить за тело цикла и присвоить ему реальное значение (переменную), тогда и обращаться к переменной, которая имеет вернувшийся результат запроса.
$res = mysql_query();
$res = 1. name-a, 2. name-b, 3.name-c
mysql_fetch_assoc;
echo name = a;
mysql_fetch_assoc;
echo name = b;
mysql_fetch_assoc;
echo name = c;
mysql_fetch_assoc;
echo name = FALSE (некуда дальше переходить, всего 3 записи взялись, поэтому возвращается false и цикл прерывается)
Само обращение надо отправить за тело цикла и присвоить ему реальное значение (переменную), тогда и обращаться к переменной, которая имеет вернувшийся результат запроса.
$res = mysql_query();
$res = 1. name-a, 2. name-b, 3.name-c
mysql_fetch_assoc;
echo name = a;
mysql_fetch_assoc;
echo name = b;
mysql_fetch_assoc;
echo name = c;
mysql_fetch_assoc;
echo name = FALSE (некуда дальше переходить, всего 3 записи взялись, поэтому возвращается false и цикл прерывается)
Спустя 6 минут (27.12.2010 - 21:26) DmitryOpalev написал(а):
Спасибо
Спустя 7 дней, 12 часов, 1 минута, 20 секунд (5.01.2011 - 09:28) Зарегестрирований написал(а):
$res = mysql_query($table);
$nums = Mysql_num_rows($res)
$associ = mysql_fetch_assoc($res)
id = o
while($id <= $nums)
{
echo "<tr>";
echo "<td>".$associ['first']."</td>";
echo "<td>".$associ['second']."</td>";
echo "<td>".$row['third']."</td>";
echo "<td>".$row['ing']."</td>";
echo "<td>".$row['translate']."</td>";
echo "</tr>";
}
И ТД
Спустя 7 часов, 1 минута, 29 секунд (5.01.2011 - 16:29) inpost написал(а):
Зарегестрирований
не-а =) Ты не прав. Да и твой скрипт работать не будет...
не-а =) Ты не прав. Да и твой скрипт работать не будет...
_____________
Курс валют