$albums = mysql_query("SELECT * FROM albums WHERE user_id='$userid'") or die(mysql_error());
$foto_albums = mysql_query("SELECT * FROM images WHERE album_id='$id' and status='active'") or die(mysql_error());
while($row=mysql_fetch_assoc($foto_albums))
{
$image_id=$row['id'];
$image_name=$row['name'];
$image_description=$row['description'];
$image_url=$row['url'];
echo "<div id=\"Foto_$image_id\">
<div class=\"edit_photo_main_$image_id\">
<div class=\"edit_photo_main\">
<div class=\"edit_photo_options\">
<img src=\"$image_url\" width=\"130px\" style=\"float:left;\"/><br>
<a href=\"#\" class=\"text\" onclick=\"photoDelete($image_id)\">Удалить</a><div class=\"move_box\"><span class=\"text\">Переместить в</span>
<form method=\"post\">
<select name=\"albums$image_id\" class=\"album_select\">"; // SELECT с циклом
if(mysql_num_rows($albums)>1)
{
while($album_v=mysql_fetch_assoc($albums))
{
$album_v_id=$album_v['id'];
$album_v_name=$album_v['name'];
echo "<option name=\"album$album_v_id\">$album_v_name</option>";
}
}
echo "</select>
</div>
</div>
<div class=\"edit_photo_desc\">
<textarea class=\"image_desc\">$image_description</textarea>
</div>
</div>
</div>
</div>";
}
Спустя 49 минут, 25 секунд (29.05.2010 - 08:13) Rand написал(а):
Во втором цикле mysql_fetch_assoc прокручивает результат запроса до последней строки. При следующей итерации первого цикла, прокручивать уже будет нечего.
$foto_albums = mysql_query("SELECT * FROM images WHERE album_id='$id' and status='active'") or die(mysql_error());
while($row=mysql_fetch_assoc($foto_albums))
{
$image_id=$row['id'];
$image_name=$row['name'];
$image_description=$row['description'];
$image_url=$row['url'];
echo "<div id=\"Foto_$image_id\">
<div class=\"edit_photo_main_$image_id\">
<div class=\"edit_photo_main\">
<div class=\"edit_photo_options\">
<img src=\"$image_url\" width=\"130px\" style=\"float:left;\"/><br>
<a href=\"#\" class=\"text\" onclick=\"photoDelete($image_id)\">Удалить</a><div class=\"move_box\"><span class=\"text\">Переместить в</span>
<form method=\"post\">
<select name=\"albums$image_id\" class=\"album_select\">"; // SELECT с циклом
$albums = mysql_query("SELECT * FROM albums WHERE user_id='$userid'") or die(mysql_error());
if(mysql_num_rows($albums)>1)
{
while($album_v=mysql_fetch_assoc($albums))
{
$album_v_id=$album_v['id'];
$album_v_name=$album_v['name'];
echo "<option name=\"album$album_v_id\">$album_v_name</option>";
}
}
echo "</select>
</div>
</div>
<div class=\"edit_photo_desc\">
<textarea class=\"image_desc\">$image_description</textarea>
</div>
</div>
</div>
</div>";
}
Спустя 15 минут, 22 секунды (29.05.2010 - 08:28) Kuliev написал(а):
За чем гонять бестолковый запрос в цикле???
Спустя 2 минуты, 8 секунд (29.05.2010 - 08:31) Rand написал(а):
Ё-маё, напиши как надо, не все же такие спецы.
Спустя 15 минут, 37 секунд (29.05.2010 - 08:46) Vulkan написал(а):
Rand, спасибо большое за подсказку.
Спустя 49 секунд (29.05.2010 - 08:47) Rand написал(а):
В данном случае, думаю можно ещё занести результат запроса в массив, а потом прокручивать его.

Спустя 13 минут, 27 секунд (29.05.2010 - 09:00) Kuliev написал(а):
Цитата (Rand @ 29.05.2010 - 10:31) |
Ё-маё, напиши как надо, не все же такие спецы. |
насколько я понимаю переменная $userid не динамическая, а значит что запрос постоянно выводит одни и теже данные!
По этому не нужно вставлять вот этот запрос в цикл
$albums = mysql_query("SELECT * FROM albums WHERE user_id='$userid'") or die(mysql_error());
лучше получить значение из бд согласно этому запросу перед циклом!
Спустя 13 минут, 40 секунд (29.05.2010 - 09:14) Rand написал(а):
Мне самому не очень нравятся запросы в циклах, по другому я бы сделал вот так, как можно ещё не знаю:
$albums = mysql_query("SELECT * FROM albums WHERE user_id='$userid'") or die(mysql_error());
if(mysql_num_rows($albums)>1)
{
while($album_v=mysql_fetch_assoc($albums))
{
$album_v_id[]=$album_v['id'];
$album_v_name[]=$album_v['name'];
}
}
$foto_albums = mysql_query("SELECT * FROM images WHERE album_id='$id' and status='active'") or die(mysql_error());
while($row=mysql_fetch_assoc($foto_albums))
{
$image_id=$row['id'];
$image_name=$row['name'];
$image_description=$row['description'];
$image_url=$row['url'];
echo "<div id=\"Foto_$image_id\">
<div class=\"edit_photo_main_$image_id\">
<div class=\"edit_photo_main\">
<div class=\"edit_photo_options\">
<img src=\"$image_url\" width=\"130px\" style=\"float:left;\"/><br>
<a href=\"#\" class=\"text\" onclick=\"photoDelete($image_id)\">Удалить</a><div class=\"move_box\"><span class=\"text\">Переместить в</span>
<form method=\"post\">
<select name=\"albums$image_id\" class=\"album_select\">"; // SELECT с циклом
for($i=0;$i<count($album_v_id);$i++)
{
echo "<option name=\"album$album_v_id[$i]\">$album_v_name[$i]</option>";
}
echo "</select>
</div>
</div>
<div class=\"edit_photo_desc\">
<textarea class=\"image_desc\">$image_description</textarea>
</div>
</div>
</div>
</div>";
}
Спустя 27 минут, 28 секунд (29.05.2010 - 09:42) Vulkan написал(а):
Цитата (Rand @ 29.05.2010 - 06:14) |
Мне самому не очень нравятся запросы в циклах, по другому я бы сделал вот так, как можно ещё не знаю:$albums = mysql_query("SELECT * FROM albums WHERE user_id='$userid'") or die(mysql_error()); |
Это уже намного рациональнее, спасибо =)