|
Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] Ошибки "Undefined variable" |
|
|
[решено] Ошибки "Undefined variable"
|
Новый участник Сообщения: 20 |
Профиль | Отправить PM | Цитировать Здравствуйте. Сделал небольшой набор кодов для того, чтобы можно было добавлять, смотреть, обновлять и удалять данные из таблиц, код работает, но в некоторых местах выдает уведомление: "Undefined variable" и кое-где не работает как надо.
Ошибка: Notice: Undefined variable: display_block in C:\apache\localhost\www\sel_bydate.php on line 31
Ошибка: Notice: Undefined variable: option_block in C:\apache\localhost\www\pick_modvac.php on line 15
Ну и самый главный гемор, который весь вечер вчерашний пытался вылечить (поскольку только он мешает нормальной работе "системы управления БД"): На странице при открытии, в полях ввода должны уже находиться данные, которые хранятся в базе данных для выбранной вакансии. Чтобы было удобно обновлять информацию, не вбивая её всю заново. При открытии вместо данных из базы данных в полях ввода ошибка: <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 - т.е. первое поле заполнилось как надо. Далее код этой страницы:
|
|
Отправлено: 15:14, 11-09-2008 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать В первом куске - напишите $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) и к первому скрипту относится. |
Отправлено: 16:02, 11-09-2008 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать ясно, спасибо, буду пробовать когда освобожусь, позже отпишусь.
|
Отправлено: 16:15, 11-09-2008 | #3 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Спасибо, с первым и вторым разобрался.
Теперь далее: При таком коде, ошибка: Parse error: syntax error, unexpected ':' in C:\apache\localhost\www\show_modvac.php on line 15
При изменении echo $vac_name на echo $row['vac_name'] - поле ввода просто пустое, без ошибок, но и без инфы из БД. Как я уже говорил, поле "Номер вакансии" (vac_id) он показывает правильно, может из-за того, что там только цифры, а с текстом он не может подружиться? |
Отправлено: 17:25, 11-09-2008 | #4 |
Вредитель Сообщения: 460
|
Профиль | Отправить PM | Цитировать |
|
------- Отправлено: 17:34, 11-09-2008 | #5 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Если сделать так, то разницы не видно:
т.е. Что есть команда print_r($row); что её нету - нет новых ошибок Вот картинка, чтобы понятнее было о чем речь |
Отправлено: 17:35, 11-09-2008 | #6 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Цитата FoXLee:
Ну или вставьте print_r($row); внутри <body>, чтобы увидеть вывод прямо в браузере. Для удобства можно окружить тэгами <pre>: Должно выводится содержание массива $row. |
|
Отправлено: 18:05, 11-09-2008 | #7 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Все равно ничего нету, может это и есть ответ?
|
Отправлено: 18:14, 11-09-2008 | #8 |
Кот Ти Сообщения: 7318
|
Профиль | Отправить PM | Цитировать Хм... Нет, это не тот ответ) Похоже, что $row просто не существует. Может быть ошибка в SQL-запросе?
Теперь давайте сделаем так:
Посмотрим какой тут запрос формируется. Может быть не vac_id = \"vac_id\", а vac_id = \"$vac_id\" надо? (кстати, откуда эта vac_id берётся? Из GET или POST-запроса? Тогда пишите $_GET['vac_id'] или $_POST['vac_id']. |
Отправлено: 18:24, 11-09-2008 | #9 |
Ветеран Сообщения: 1862
|
Профиль | Сайт | Отправить PM | Цитировать Что-то я запамятовал, но мне кажется что идет путаница между полями в MySQL и переменными в PHP. После запроса к базе надо присваивать полученные значения переменным.
|
------- Отправлено: 01:30, 12-09-2008 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интерфейс - [решено] Как удалить папку "Моя музыка","Мои Картинки", "Мое видео"? | verdix | Microsoft Windows 2000/XP | 3 | 03-10-2009 23:46 | |
Debian/Ubuntu - [решено] Пропали кнопки "свернуть","закрыть","во весь екран" в папках | Alex.sys | Общий по Linux | 5 | 02-04-2009 11:13 | |
[решено] Notice: Undefined variable: _SESSION | Artem-Samsung | Вебмастеру | 1 | 05-09-2008 22:00 | |
Запретить/удалить пункт "Programs" ("Программы") из меню кнопки "Start" ("Пуск") | submaster | Microsoft Windows NT/2000/2003 | 5 | 13-09-2006 12:29 |
|