Доброго времени суток! Есть база данных tabel с таблицами tUser(id_user, User, Dep, Doljnost) и tabel(id_tab, id_user, 1, 2, 3) связанных по полю id_user. Есть скрипт достающий нужные поля из базы на форму для дальнейшего просмотра/редактирования: PHP: <html> <body> <form action="fzapolnenie.php" method="get"> <select name='Month' size ='1'> <?php $host = "localhost"; $use = "root"; $pass = ""; $db = "tabel"; mysql_connect($host, $use, $pass); mysql_select_db($db); $result = mysql_query('SELECT * FROM tMon '); while($row = mysql_fetch_array($result)) { echo "<option value =".$row['id_mon'].">".$row['Mon']."</option>"; } ?> </select> <? echo "<input name='pYear' type='text' size='3' value=".date(Y).">"; ?> <select name="Name" size="1"> <? $result1 = mysql_query('SELECT * FROM tUser'); while($row1 = mysql_fetch_array($result1)) { echo "<option value = ".$row1['id_user'].">".$row1['User']."</option>"; } ?> </select></br></br></br> <table width="690" height="5" border="1"> <? $sql = "SELECT `tUser`.`id_user`,`tUser`.`User`,`tUser`.`Dep`,`tUser`.`Doljnost`, `tabel`.`1`,`tabel`.`2`,`tabel`.`3` FROM tabel LEFT JOIN `tabel`.`tUser` ON `tabel`.`id_user` = `tUser`.`id_user` LIMIT 0, 30 "; $res3 = mysql_query($sql); while($row3 = mysql_fetch_array($res3)) { echo "<tr><td>".$row3['`tUser`.`id_user`']."</td><td><select size='1' name='Name'>"; echo "<option value =".$row3['`tUser`.`id_user`'].">".$row3['`tUser`.`User`']."</option>"; $result4 = mysql_query('SELECT * FROM tUser'); while($row4 = mysql_fetch_array($result4)){ if($row4['User'] != $row3['tUser.User']) { echo "<option value =".$row4['id_user'].">".$row4['User']."</option>"; } } echo "</select></td>"; echo "<td>".$row4['Dep']."</td>"; echo"<td>".$row3['`tUser`.`Doljnost`']."</td>"; } //} ?> </table></br></br></br> </form> </body> </html> Все бы хорошо, только данные не отражаются на форме, хотя в phpMyAdmin запрос $sql выполняется так как нужно.(Хотел приложить скрин да не нашел где тут вложения). Помогите пожалуйста выяснить, почему поля из запроса $str не отображаются на форме, может я делаю что-то не так в коде или ошибкаб которую не вижу?.(Должно быть 3 записи ) Заранее спасибо! Использую связку Denwer3_Base_2010-11-07_a2.2.4_p5.3.1_m5.1.40_pma3.2.3
Разве PHP не ругается на такую запись? Индексы массива какие-то странные. PHP: echo "<tr><td>".$row3['`tUser`.`id_user`']."</td><td><select size='1' name='Name'>"; echo "<option value =".$row3['`tUser`.`id_user`'].">".$row3['`tUser`.`User`']."</option>";
Нет не ругается, выводит пустые <selectы>, то количество, которое нужно, но без данных ). Да, насчет индексов согласен, вот и ищу помощи/подсказки как из базы вытянуть нужные поля, например tUser.id_user, tUser.User, Dep, tUser.Doljnost. Вот этот кусок работает нормально(выдает список фамилий в каждой ячейке таблицы): PHP: $result4 = mysql_query('SELECT * FROM tUser'); while($row4 = mysql_fetch_array($result4)){ if($row4['User'] != $row3['tUser.User']) { echo "<option value =".$row4['id_user'].">".$row4['User']."</option>"; } Но тут sql запрос к полям одной таблицы, а как вытянуть в массив поля из связанных таблиц, как в примере выше?
Все разобрался, дело в индексах массива (не нужно указывать имя таблицы): PHP: $sql = "SELECT `tUser`.`id_user`,`tUser`.`User`,`tUser`.`Dep`,`tUser`.`Doljnost`, `tabel`.`1`,`tabel`.`2`,`tabel`.`3` FROM tabel LEFT JOIN `tabel`.`tUser` ON `tabel`.`id_user` = `tUser`.`id_user` LIMIT 0, 30 "; $res3 = mysql_query($sql); while($row3 = mysql_fetch_array($res3)) { echo "<tr><td>"[u].$row3['id_user'].[/u]"</td><td><select size='1' name='Name'>"; echo "<option value ="[u].$row3['id_user'].[/u]">"[u].$row3['User'].[/u]"</option>"; $result4 = mysql_query('SELECT * FROM tUser'); while($row4 = mysql_fetch_array($result4)){ if($row4['User'] != $row3['User']) { echo "<option value =".$row4['id_user'].">".$row4['User']."</option>"; } } echo "</select></td>"; echo "<td>"[u].$row3['Dep'].[/u]"</td>"; echo"<td>"[u].$row3['Doljnost'].[/u]"</td>"; } Вопрос снимаю. Спасибо всем кто участвовал.