[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: do while вложенная конструкция
DooMka
столкнулся с такой проблемой, постараюсь объяснить как можно конструктивней, уверен с подобным сталкиваются все новички

дабы сделать свой сайт более конструктивно-понятным посетителям возникла задача построения следующей инструкции:

do
{
do
{
while
}
}

while

Выглядит это конечно-же бредово, но увы задача стоит именно эта.

Почему передо-мной встала такая задача. Во внутреннем ( do while ) идёт запрос к другой таблице и вытаскивается там в свою очередь несколько записей, если-бы была одна запись я-бы с лёгкостью мог раскидать всё по переменным и вывести в этом потоке, но выешприведённая конструкция не может работать фактически, так-как если я не ошибаюсь, это противоречит php



Спустя 2 минуты, 11 секунд (7.12.2011 - 01:52) vital написал(а):
Кул стори, бро.
А в чем вопрос?
И кстати, почитай про LEFT JOIN

Спустя 1 минута, 2 секунды (7.12.2011 - 01:53) inpost написал(а):
do{}while!
do{
do{}while
}while

Видишь, второй должен где находиться, а не как у тебя. А вообще выброси курсы Попова и используй просто while() {}

Спустя 56 минут, 42 секунды (7.12.2011 - 02:50) DooMka написал(а):
Извиняюсь, исправил
do
{
do
{
}

while
}
while

но данная функция застревает вот скриншот

user posted image

ну а вот неблагополучный php код

do
{
$idsmmp3 = $myrowtop["mp3id"];
$resultmps3 = mysql_query("SELECT id,name,putdomp3,download,reiting,q_vote FROM mp3 WHERE id='$idsmmp3'",$db);
$myrowdwmmp3 = mysql_fetch_array($resultmps3);
$reting23 = $myrowdwmmp3['reiting']/$myrowdwmmp3['q_vote'];
$reting23 = intval($reting23);
printf ("<tr><td><div class='amp3'><a title='скачать %s mp3' href='mp3.php?id=%s'>%s</a></div></td>
<td><object type='application/x-shockwave-flash' data='pleer/dewplayer.swf?mp3=%s' width='200' height='20' id='dewplayer'>
<param name='movie' value='bloki/dewplayer.swf?mp3=mp3/01 18 mne uzhe.mp3' /></object></td><td><img alt='рейтинг песни %s' title='рейтинг песни %s жанра' src='img/votealboms/%s.png'>
</td><td><form name='form2' method='post' action='play-list-mp3.php'>
<select class='bgfontsolg' name='menu' size='1'>
<option selected value='0'>Не в списке</option>
"
,$myrowdwmmp3['name'],$myrowdwmmp3['id'],$myrowdwmmp3['name'],$myrowdwmmp3['putdomp3'],$myrowdwmmp3['name'],$myrowdwmmp3['name'],$reting23);
do
{
$resulliskd = mysql_query("SELECT id,avtorid,nameplaylist FROM play_list WHERE avtorid='$idpolz'",$db);
$myrowlistssf = mysql_fetch_array($resulliskd);
printf ("
<option value='%s'>%s</option>
"
,$myrowlistssf['id'],$myrowlistssf['nameplaylist']);
}
while ($myrowlistssf = mysql_fetch_array($resulliskd));
echo "</select>
<input class='rei_botm' name='Submit' type='submit' value='Изменить'>
</form>
</td></tr>"
;
}
while ($myrowtop = mysql_fetch_array($resulttop));


по поводу LEFT JOIN, начал читать, но пока не вник, что к чему со временем разберусь

как я понял работать прекрасно будет и в таком виде:
while ($myrowlistssf = mysql_fetch_array($resulliskd));
{
$resulliskd = mysql_query("SELECT id,avtorid,nameplaylist FROM play_list WHERE avtorid='$idpolz'",$db);
$myrowlistssf = mysql_fetch_array($resulliskd);
printf ("
<option value='%s'>%s</option>
"
,$myrowlistssf['id'],$myrowlistssf['nameplaylist']);
}


но не факт.

то-есть говоря простым языком пробовал использовать и построение

while ()
{
вывод потока из базы
while ()
{
вывод потока из базы
}

}


безрезультатно

Спустя 38 минут, 47 секунд (7.12.2011 - 03:29) inpost написал(а):
Сначала ЗАПРОС, потом WHILE. С внутренним ТОЖЕ САМОЕ! А не запрос внутри while, это абсурд!

Спустя 15 минут, 3 секунды (7.12.2011 - 03:44) DooMka написал(а):
Пересмотрев код осознал, что я действительно был самым настоящим идиотом, который лепил запрос внутри цикла, по-сути создавая бесконечный цикл с запросом к базе и выводом 1-й строки, вот правильный код, ещё раз огромное спасибо!!!

Работающий код
do
{
$idsmmp3 = $myrowtop["mp3id"];
$resultmps3 = mysql_query("SELECT id,name,putdomp3,download,reiting,q_vote FROM mp3 WHERE id='$idsmmp3'",$db);
$myrowdwmmp3 = mysql_fetch_array($resultmps3);
$reting23 = $myrowdwmmp3['reiting']/$myrowdwmmp3['q_vote'];
$reting23 = intval($reting23);
printf ("<tr><td><div class='amp3'><a title='скачать %s mp3' href='mp3.php?id=%s'>%s</a></div></td>
<td><object type='application/x-shockwave-flash' data='pleer/dewplayer.swf?mp3=%s' width='200' height='20' id='dewplayer'>
<param name='movie' value='bloki/dewplayer.swf?mp3=mp3/01 18 mne uzhe.mp3' /></object></td><td><img alt='рейтинг песни %s' title='рейтинг песни %s жанра' src='img/votealboms/%s.png'>
</td><td><form name='form2' method='post' action='play-list-mp3.php'>
<select class='bgfontsolg' name='menu' size='1'>
<option selected value='0'>Не в списке</option>
"
,$myrowdwmmp3['name'],$myrowdwmmp3['id'],$myrowdwmmp3['name'],$myrowdwmmp3['putdomp3'],$myrowdwmmp3['name'],$myrowdwmmp3['name'],$reting23);
$resulliskd = mysql_query("SELECT id,avtorid,nameplaylist FROM play_list WHERE avtorid='$idpolz'",$db);
$myrowlistssf = mysql_fetch_array($resulliskd);
do
{
printf ("
<option value='%s'>%s</option>
"
,$myrowlistssf['id'],$myrowlistssf['nameplaylist']);
}
while ($myrowlistssf = mysql_fetch_array($resulliskd));
echo "</select>
<input class='rei_botm' name='Submit' type='submit' value='Изменить'>
</form>
</td></tr>"
;
}
while ($myrowtop = mysql_fetch_array($resulttop));


Спустя 2 минуты, 41 секунда (7.12.2011 - 03:46) inpost написал(а):
Ну а теперь сюда: irbis-team.com и учимся программировать! Или в крайнем случае irbis-school.com
Быстрый ответ:

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