Доброго времени суток Уважаемые Знатоки. Прошу помочь с казалось бы тривиальной задачей, нужно вытащить с базы данных всех пользователей получивших бан, дальше с другой таблицы вытащить в <select> возможные причины бана и на причину бана полученную в первой таблице повесить selected="selected". Но к сожалению выходит два варианта, или выбраны ВСЕ варианты, или не одного ... Вот кусок кода ... Код | $all_my_bans = mysql_query("SELECT `id`, `intruder`, `breach`, `comment` FROM `violation` WHERE `moderator`='".$auth[0]."'", $db)or die("База данных не доступна"); while(($all_bans = mysql_fetch_array($all_my_bans)) != false){
$reasons = mysql_query("SELECT `id`, `description` FROM `reasons`", $db)or die("База данных не доступна"); echo(' <tr> <td align="center" valign="bottom"> '.$all_bans[0].' </td> <td align="center" valign="bottom"> <a href="../my_page.php?u_id='.$all_bans[1].'">'.$all_bans[1].'</a> </td> <td align="center" valign="bottom"> <select name="reasons"> <option>'.$all_bans[2].'</option> ');
while(($reason = mysql_fetch_array($reasons)) != false){ $violation = (integer)$all_bans[2];
if($violation == 1){ $breach = 'selected="selected"'; }elseif($violation == 2){ $breach = 'selected="selected"'; }elseif($violation == 3){ $breach = 'selected="selected"'; }elseif($violation == 4){ $breach = 'selected="selected"'; }elseif($violation == 5){ $breach = 'selected="selected"'; }elseif($violation == 6){ $breach = 'selected="selected"'; }elseif($violation == 7){ $breach = 'selected="selected"'; }elseif($violation == 8){ $breach = 'selected="selected"'; }elseif($violation == 9){ $breach = 'selected="selected"'; }else{ $breach = ''; }; echo('<option value="'.$reason[0].'" '.$breach.'>'.$reason[1].'</option>');
} echo(' </select> </td> <td align="center" valign="bottom"> '.$all_bans[3].' </td> <td align="center" valign="bottom"> Отмена<br />(право) </td> </tr> '); };
|
Подскажите пожалуйста в какую сторону копать ... а еще лучше ткните носом где я накрутил ... В идеальном варианте конечно это select для неограниченного списка возможных нарушений.... но всё начинается с малого UPD(16.03.2013 21:30): Судя по простоте решения моя логика в плане поиска альтернативных вариантов хромает, ну да ладно. Выкладываю ниже код, великоват конечно для таких простых задач но он работает, дальше думаю каждый сможет подпилить его под свои нужды (авось кому понадобиться, а коли тема посчитается мусорной так тому и быть под снос её  ) Код | $all_my_bans = mysql_query("SELECT `id`, `intruder`, `breach`, `comment` FROM `violation` WHERE `moderator`='".$auth[0]."'", $db)or die("База данных не доступна"); while(($all_bans = mysql_fetch_array($all_my_bans)) != false){ switch($all_bans[2]){ case 1: $breach_1 = 'selected="selected"'; break; case 2: $breach_2 = 'selected="selected"'; break; case 3: $breach_3 = 'selected="selected"'; break; case 4: $breach_4 = 'selected="selected"'; break; case 5: $breach_5 = 'selected="selected"'; break; case 6: $breach_6 = 'selected="selected"'; break; case 7: $breach_7 = 'selected="selected"'; break; case 8: $breach_8 = 'selected="selected"'; break; case 9: $breach_9 = 'selected="selected"'; break; case 10: $breach_10 = 'selected="selected"'; break; default: $breach_10 = ''; };
$reasons = mysql_query("SELECT `id`, `description` FROM `reasons`", $db)or die("База данных не доступна"); echo(' <tr> <td align="center" valign="bottom"> '.$all_bans[0].' </td> <td align="center" valign="bottom"> <a href="../my_page.php?u_id='.$all_bans[1].'">'.$all_bans[1].'</a> </td> <td align="center" valign="bottom"> <select name="reasons"> <option>'.$all_bans[2].'</option> ');
$i = 0; while(($reason = mysql_fetch_array($reasons)) != false){ $i++;
if($i == 1){ $breach = $breach_1; }; if($i == 2){ $breach = $breach_2; }; if($i == 3){ $breach = $breach_3; }; if($i == 4){ $breach = $breach_4; }; if($i == 5){ $breach = $breach_5; }; if($i == 6){ $breach = $breach_6; }; if($i == 7){ $breach = $breach_7; }; if($i == 8){ $breach = $breach_8; }; if($i == 9){ $breach = $breach_9; }; if($i == 10){ $breach = $breach_10; }; echo('<option value="'.$reason[0].'" '.$breach.'>'.$reason[1].'</option>'); } echo(' </select> </td> <td align="center" valign="bottom"> '.$all_bans[3].' </td> <td align="center" valign="bottom"> Отмена<br />(право) </td> </tr> '); };
|
Примечание: неясно почему но параллельно с передачей selected передается ошибка о отсутствующей переменной Это сообщение отредактировал(а) 0Z0NE - 16.3.2013, 22:41
|