Ошибки "Undefined variable"
Здравствуйте. Сделал небольшой набор кодов для того, чтобы можно было добавлять, смотреть, обновлять и удалять данные из таблиц, код работает, но в некоторых местах выдает уведомление: "Undefined variable" и кое-где не работает как надо.
Ошибка: Notice: Undefined variable: display_block in C:\apache\localhost\www\sel_bydate.php on line 31 PHP код:
PHP код:
На странице при открытии, в полях ввода должны уже находиться данные, которые хранятся в базе данных для выбранной вакансии. Чтобы было удобно обновлять информацию, не вбивая её всю заново. При открытии вместо данных из базы данных в полях ввода ошибка: <br /> <b>Notice</b>: Undefined variable: vac_name in <b>C:\apache\localhost\www\show_modvac.php</b> on line <b>38</b><br /> в каждом поле соответственно вместо "vac_name" и линии другие переменные. НО в первом поле (vac_id - "номер вакансии") есть цифра 1 - т.е. первое поле заполнилось как надо. Далее код этой страницы: PHP код:
|
В первом куске - напишите $display_block = ""; перед while. Видимо, к несуществующей переменной он добавлять строку не может.
Во втором, соответственно, $option_block=""; перед while. По третьему что могу сказать: 1. Когда пишите echo $var_id; и т.д. кавычки можно не ставить. 2. Зачем вот это в цикле: while ($row = mysql_fetch_array($result)) ? Одна ведь строка выбирается. Избавьтесь от while. 3. Зачем заниматься такой ерундой: $vac_id = $row['vac_id']; , если можно потом просто написать echo $row['vac_id']; ? 4. Попробуйте вывести содержимое переменной $row: print_r($row); после mysql_fetch_array(). Посмотрим, что оно выдаёт. 5. Это мелочь, но всё же, не везде php-парсер принимает скрипт, если он заключён в short-тэги: <? ... ?>. Пишите лучше <?php ... ?> В общем-то, всё это (кроме п.4) и к первому скрипту относится. |
ясно, спасибо, буду пробовать когда освобожусь, позже отпишусь.
|
Спасибо, с первым и вторым разобрался.
Теперь далее: При таком коде, ошибка: Parse error: syntax error, unexpected ':' in C:\apache\localhost\www\show_modvac.php on line 15 PHP код:
Как я уже говорил, поле "Номер вакансии" (vac_id) он показывает правильно, может из-за того, что там только цифры, а с текстом он не может подружиться? |
FoXLee, а что это за странная команда?
PHP код:
|
Если сделать так, то разницы не видно:
PHP код:
Вот картинка, чтобы понятнее было о чем речь |
Цитата:
Ну или вставьте print_r($row); внутри <body>, чтобы увидеть вывод прямо в браузере. Для удобства можно окружить тэгами <pre>: PHP код:
|
Все равно ничего нету, может это и есть ответ?
PHP код:
|
Хм... Нет, это не тот ответ) Похоже, что $row просто не существует. Может быть ошибка в SQL-запросе?
Теперь давайте сделаем так: PHP код:
Может быть не vac_id = \"vac_id\", а vac_id = \"$vac_id\" надо? (кстати, откуда эта vac_id берётся? Из GET или POST-запроса? Тогда пишите $_GET['vac_id'] или $_POST['vac_id']. |
Что-то я запамятовал, но мне кажется что идет путаница между полями в MySQL и переменными в PHP. После запроса к базе надо присваивать полученные значения переменным.
|
Coutty, Вы были правы, $row не существовал из-за vac_id = \"vac_id\", вместо vac_id = \"$vac_id\" . Я заменил echo $vac_name на echo $row['vac_name'] и все заполнилось без проблем, ну и убрал из кода вывод запроса sql и отображение $row
Рабочий код: PHP код:
ой, забыл изменить $vac_id на echo $row['vac_id'] в html в hidden и text, но и с "$vac_id" - тоже отображается правильно. Странно. Работает во всех полях как $vac_id так и $row['vac_id'], вся проблема была в недостающем знаке $ в WHERE vac_id = \"$vac_id\" :) |
Цитата:
Тогда этот $vac_id берётся из $_GET[vac_id] или $_POST[vac_id] (в общем, из $_QUERY[vac_id]), а не из $row. И ещё - зачем $vac_id писать и в hidden-поле, и в text? Name у переменной одно и тоже. Можно убрать hidden. |
register_globals выключен
|
Цитата:
echo $_POST[vac_id] - что покажет? |
Время: 03:42. |
Время: 03:42.
© OSzone.net 2001-