|
|
|
| У меня есть отлично работающий запрос(код с запросом) который в выпадающий список выводит название объектов.
Выберите название объекта : </br>
<select name ="name">
<?php
$res = mysql_query("SELECT * FROM object ORDER BY name");
while ($row = mysql_fetch_array($res))
{
print "<option value='".$row["name"]."'>".$row["name"];
}
?>
</select>
|
Далее с помощью POST название объекта (name) передается в другой файл. В другой файл оно (название объекта) приходит верно. Далее мне нужно выбрать фамилию из выпадающего списка с учетом названия объекта (Все рабочие с объекта - А).
Я пишу:
Выберите фамилию работника, работающего на объекте: <?php echo("".$name.""); ?></br>
|
Т.е. как я и говорю название объекта приходит верно.
А далее пишу почти такой же код только добавляю WHERE
<select name ="familiya">
<?php
$res = mysql_query("SELECT * FROM zar ORDER BY familiya WHERE name='".$name."';");
while ($row = mysql_fetch_array($res))
{
print "<option value='".$row["familiya"]."'>".$row["familiya"];
}
?>
</select>
|
И ничего не выводится хотя если убрать WHERE тогда появится полный список всех фамилий в базе. Может где-то ошибка в запятой или точки ??? Или что-то в printe неверно ??? | |
|
|
|
|
|
|
|
для: Alessandro
(16.03.2006 в 17:35)
| | в запросе: $res = mysql_query("SELECT * FROM zar ORDER BY familiya WHERE name='".$name."';");
сначала идет конструкция where, а потом order, не наоборот, как у вас. | |
|
|
|
|
|
|
|
для: Alessandro
(16.03.2006 в 17:35)
| | порядок записи инструкций в операторе SELECT должен быть таким:
SELECT.... FROM....WHERE....GROUP BY.... HAVING.... ORDER BY....LIMIT
Заметьте, что самим сервером БД инструкции в операторе SELECT обрабатываются в следующем порядке:
FROM .... WHERE .... GROUP BY ..... HAVING .....SELECT .... ORDER BY .... LIMIT
И еще. Пока Вы не научились писать запросы, вызов mysql_query() у Вас должен появляться только в следующем контексте:
$query = "SELECT....."; /* или INSERT.... DELETE.....UPDATE */
if(($res = mysql_query($query)) == 0) die("Error in $query due to ".mysql_error());
|
И ни в каком другом. Иначе Вы просто не видите, почему рушится запрос.
А когда научитесь, Вы эти инструкци сами будете вставлять. :) | |
|
|
|
|
|
|
|
для: Trianon
(16.03.2006 в 20:17)
| | Да спасибо за ответ я уже понял свою ошибку. А когда пытался вывести ее то почему вообще после запроса остальной весь код просто не работал и ошибка не выводилась. Типа break )). | |
|
|
|