|
|
|
| Привет народ.
Создаю небольшой портал, и надо создать интерфейс доступа к БД. Все нормально, но только есть проблема с скриптом обновления данных. Кажется все делаю верно, пример скрипта нашел на этом форуме и главное что в других проектах он работает нормально, а тут просто ужас. Постоянно выбрасывает в окно браузера
Notice: Undefined index: title_en in z:\home\museum.lviv.net\www\ua\admin\update.php on line 23
Notice: Undefined index: abstract_ua in z:\home\museum.lviv.net\www\ua\admin\update.php on line 25
Notice: Undefined index: abstract_ru in z:\home\museum.lviv.net\www\ua\admin\update.php on line 26
Notice: Undefined index: abstract_en in z:\home\museum.lviv.net\www\ua\admin\update.php on line 27
я знаю что это можна убрать, но интересно как можна с этим боротся. Сам скрипт я выкладываю ниже, посмотрите пожалуйста где закралась ошибка.
<?
/*Об'являємо глобальні настройки*/
$host="localhost";
$user="root";
$passw="";
$dbase="museum";
$table="nzdpm";
/*зєднання з БД*/
mysql_connect($host,$user,$passw) or die ("<font color='red'>Неможливо встановити з'єднання з базою даних. Зверніться до адміністратора.</font>");
/*вибір БД*/
mysql_select_db($dbase) or die ("<font color='red'>База даних зараз недоступна. Зверніться до адміністратора.</font>");
$id=$_POST["id"];
$rik=$_POST["rik"];
$rozdil=$_POST["rozdil"];
$rozdil_ru=$_POST["rozdil_ru"];
$rozdil_en=$_POST["rozdil_en"];
$udk=$_POST["udk"];
$avtors_ua=$_POST["avtors_ua"];
$avtors_ru=$_POST["avtors_ru"];
$avtors_en=$_POST["avtors_en"];
$title_ua=$_POST["title_ua"];
$title_ru=$_POST["title_ru"];
$title_en=$_POST["title_en"];
$page=$_POST["page"];
$abstract_ua=$_POST["abstract_ua"];
$abstract_ru=$_POST["abstract_ru"];
$abstract_en=$_POST["abstract_en"];
$query='UPDATE nzdpm set
id="'.$id.'",
rik="'.$rik.'",
rozdil="'.$rozdil.'",
rozdil_ru="'.$rozdil_ru.'",
rozdil_en="'.$rozdil_en.'",
udk="'.$udk.'",
avtors_ua="'.$avtors_ua.'",
avtors_ru="'.$avtors_ru.'",
avtors_en="'.$avtors_en.'",
title_ua="'.$title_ua.'",
title_ru="'.$title_ru.'",
title_en="'.$title_en.'",
page="'.$page.'",
abstract_ua="'.$abstract_ua.'",
abstract_ru="'.$abstract_ru.'",
abstract_en="'.$abstract_en.'"
where id="'.$id.'"';
$ath=mysql_query($query);
if (!$ath)
{
echo 'Ніфіга не вийшло';
exit;
}
?>
Спасибо за ответы.
Роман | |
|
|
|
|
|
|
|
для: zloi_burgui
(15.06.2007 в 09:40)
| | POST-параметры title_en, abstract_ua, abstract_ru и abstract_en всякий раз передаются обработчику или могут не передаваться? | |
|
|
|
|
|
|
|
для: cheops
(15.06.2007 в 09:55)
| | Да они всегда передаются. | |
|
|
|
|
|
|
|
для: zloi_burgui
(15.06.2007 в 11:48)
| | Неправда. Смотрите что в у Вас в $_POST:
<?php
print_r($_POST);
?>
|
| |
|
|
|
|
|
|
|
для: zloi_burgui
(15.06.2007 в 11:48)
| | как осуществляется обращение к обработчику? | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2007 в 13:06)
| | Есть форма для введения даных с ее помощью база наполняется, есть форма для редактирования данных, в которую выводятся данные из БД, по 1 записи на страницу в ней же вносятся правки, которые обрабатывает код который я привел выше. Не могу понять где ошибка в коде, поскольку правки не работает обновление даных БД. | |
|
|
|
|
|
|
|
для: zloi_burgui
(15.06.2007 в 13:58)
| | Может Вы покажите форму? | |
|
|
|
|
|
|
|
для: Unkind
(15.06.2007 в 14:21)
| | Ok, кидаю форму для правки информации
<?
$onpage = 1; // записей на страницу
$table = "nzdpm"; // из какой таблицы
include ('config.php');
$page=page();
$result=sql_query($onpage, $page, $table);
while($data=mysql_fetch_array($result))
{
echo '
<table border="0">
<form action=update.php method=POST>
<tr><td>УДК:</td><td><input type=text name="udk" value="'.$data['udk'].'"></td></tr>
<tr><td>Автор:</td><td><input type=text size="140" name="avtors_ua" value="'.$data['avtors_ua'].'"></td></tr>
<tr><td>Автор_ru:</td><td><input type=text size="140" name="avtors_ru" value="'.$data['avtors_ru'].'"></td></tr>
<tr><td>Автор_en:</td><td><input type=text size="140" name="avtors_en" value="'.$data['avtors_en'].'"></td></tr>
<tr><td>Заголовок:</td><td><textarea name="title_ua" rows="3" cols="105">"'.$data['title_ua'].'"
</textarea></td></tr>
<tr><td>Заголовок_ru:</td><td><textarea name="title_ru" rows="3" cols="105">"'.$data['title_ru'].'"
</textarea></td></tr>
<tr><td>Заголовок_en:</td><td><textarea name="title_ru" rows="3" cols="105">"'.$data['title_en'].'"
</textarea></td></tr>
<tr><td>Рік:</td><td><input type=text size="140" name="rik" value="'.$data['rik'].'"></td></tr>
<tr><td>Том:</td><td><input type=text size="140" name="tom" value="'.$data['tom'].'"></td></tr>
<tr><td>Сторінки:</td><td><input type=text name="page" size="140" value="'.$data['page'].'"></td></tr>
<tr><td>Розділ:</td><td><input type=text name="rozdil" size="140" value="'.$data['rozdil'].'"></td></tr>
<tr><td>Розділ_ru:</td><td><input type=text name="rozdil_ru" size="140" value="'.$data['rozdil_ru'].'"></td></tr>
<tr><td>Розділ_en:</td><td><input type=text name="rozdil_en" size="140" value="'.$data['rozdil_en'].'"></td></tr>
<tr><td>Резюме:</td><td><textarea name="title_ru" rows="6" cols="105">"'.$data['abstract_ua'].'"
</textarea></td></tr>
<tr><td>Резюме_ru:</td><td><textarea name="title_ru" rows="6" cols="105">"'.$data['abstract_ru'].'"
</textarea></td></tr>
<tr><td>Резюме_en:</td><td><textarea name="title_ru" rows="6" cols="105">"'.$data['abstract_en'].'"
</textarea></td></tr>
<input type=hidden name="id" value="'.$data['id'].'"><br /></td></tr></table>
<br /><br />';
echo '<input type=submit class=butt value="Записати дані">
</form><br /><br />
<form action=delete.php method=post>
<input type=hidden name=id value='.$data['id'].'>
<input type=submit class=butt value="Видалити запис"></form>';
};
$navigation = navigation($onpage, $page, $table); // определим навигацию
echo $navigation; // выведем ее
mysql_close(); // отключение от БД
echo '<br /><br />';
echo '<a href="index.php">На головну сторінку</a>';
?> | |
|
|
|
|
|
|
|
для: zloi_burgui
(15.06.2007 в 13:58)
| | если у Вас там чекбоксы или радиобаттоны - неудивительно , что часть полей Вы не видите.
Пользуйтесь конструкцией if(isset($_POST['поле'])).... | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2007 в 14:32)
| | Чекбоксов и радиобатонов нет. | |
|
|
|
|
|
|
|
для: zloi_burgui
(15.06.2007 в 19:57)
| | вы просто копи-пастом размножили строки в форме. А скорректировать имена полей - поленились. Вот и стоит куча title_ru и ни одного title_en и прочих полей, на отсутствие которых идет ругань.
Стоит ли удивляться? | |
|
|
|
|
|
|
|
для: Trianon
(15.06.2007 в 20:05)
| | Да точно, не разглядел, заработался. Спасибо, извиняюсь что потратил Ваше время.
Всем спасибо за ответы. | |
|
|
|