|
|
|
| Написал форму и обработчик, при добавлении идёт ошибка и данные естественно не пишуться в таблицу.
Вот форма
if(!isset($button)) $button = "Добавить";
if(!isset($action)) $action = "addprod.php";
if(!isset($pos))
{
$query = "SELECT MAX(pos) FROM product
WHERE id_catalog=".$_GET['id_parent'];
$num = mysql_query($query);
if($num) $pos = mysql_result($num,0) + 1;
}
?>
<script language="JavaScript" type="text/javascript" src="http://work.5rubley.ru/editor/wysiwyg.js">
</script>
<table border="1"><tr><td>
<p class=boxmenu><a class=menu href="index.php?id_catalog=<? echo $id_catalog; ?>&id_parent=<? echo $id_parent ?>">Вернуться в администрирование каталога</a></p>
</td></tr></table>
<form action=<?php echo $action; ?> method=post>
<table border="1">
<tr>
<td><p class=zag2>Тип</td>
<td>
<select class=input type=text name=tip>
<option value='tip' <?php if($tip == 'tip' ) echo "selected"; ?>>Тип объявления
<option value='serch' <?php if($tip == 'serch') echo "selected"; ?>>Поиск работы
<option value='pred_rab' <?php if($tip == 'pred_rab' ) echo "selected"; ?>>Предложение работы
<option value='bay' <?php if($tip == 'bay' ) echo "selected"; ?>>Куплю
<option value='sel' <?php if($tip == 'sel' ) echo "selected"; ?>>Продам
<option value='yslygi' <?php if($tip == 'yslygi' ) echo "selected"; ?>>Автозаводский
</select>
</td>
</tr>
<tr><td><p class=zag2>Заголовок</td><td><input size=61 class=input type=text name=note value='<?php echo $note; ?>'></td></tr>
<td><p class=zag2></td>
<td>
</td>
</tr>
<tr><td><p class=zag2>цена</td><td><input size=61 class=input type=text name=tcen value='<?php echo $tcen; ?>'> <select class=input type=text name=cena>
<option value='tvcen' <?php if($cena=='tvcen') echo "selected"; ?>>Фиксированная
<option value='torg' <?php if($cena=='torg') echo "selected"; ?>>Торг
<option value='max' <?php if($cena=='max') echo "selected"; ?>>Максимальная
<option value='min' <?php if($cena=='min') echo "selected"; ?>>Минимальная
</select></td></tr>
<tr><td><p class=zag2>ИМЯ</td><td><input size=61 class=input type=text name=name value='<?php echo $name; ?>'></td></tr>
<tr><td><p class=zag2>email</td><td><input size=61 class=input type=text name=email value='<?php echo $email; ?>'></td></tr>
<tr><td><p class=zag2>Телефон</td><td><input size=61 class=input type=text name=tel value='<?php echo $tel; ?>'></td></tr>
<tr><td><p class=zag2>Страна</td><td><input size=61 class=input name=strana value='<?php echo $strana; ?>'></td></tr>
<tr><td><tr><td><p class=zag2>Город</td><td><input class=input type=text name=gorod value='<?php echo $gorod; ?>'></td></tr>
<tr><td><p class=zag2>Позиция</td><td><input class=input type=text name=pos value='<?php echo $pos; ?>'></td></tr>
<tr><td><tr><td><p class=zag2>Сообщение</td><td><textarea class=input type=text id=text name=post><?php echo $post; ?></textarea>
<script language="javascript1.2">
generate_wysiwyg('text');
</script>
</td></tr>
<tr><td></td><td><input class=button id=button type=submit value=<?php echo $button; ?>></td></tr>
<input type=hidden name=id_catalog value=<?php echo $_GET['id_catalog']; ?>>
<input type=hidden name=id_product value=<?php echo $_GET['id_product']; ?>>
</table>
</form>
|
Вот обработчик.
if(!isset($_POST['name'])) links($_POST['id_catalog'], "Не указанно имя)");
if(!isset($_POST['email'])) links($_POST['id_catalog'], "Не указан email");
if(!isset($_POST['tel'])) links($_POST['id_catalog'], "Не указан телефон");
if(!isset($_POST['strana'])) links($_POST['id_catalog'], "Не введена страна");
if(!isset($_POST['gorod'])) links($_POST['id_catalog'], "Не введена общая цена");
if(!isset($_POST['note'])) links($_POST['id_catalog'], "Не введен заголовок");
// Заменяем одинарные кавычки
$_POST['note'] = str_replace("'","`",$_POST['note']);
$_POST['name'] = str_replace("'","`",$_POST['name']);
$_POST['email'] = str_replace("'","`",$_POST['email']);
$_POST['tel'] = str_replace("'","`",$_POST['tel']);
$_POST['strana'] = str_replace("'","`",$_POST['strana']);
$_POST['gorod'] = str_replace("'","`",$_POST['gorod']);
$query = "INSERT INTO obiev VALUES (
NULL,
'".$_POST['post']."',
'".$_POST['note']."',
'".$_POST['tips']."',
'".$_POST['email']."',
'".$_POST['name']."',
'".$_POST['tel']."',
'".$_POST['cena']."',
'".$_POST['tcen'].",
'".$_POST['strana']."',
'".$_POST['gorod']."',
".$_POST['pos'].",
".$_POST['id_catalog'].")";
if(mysql_query($query)) {
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php?id_parent=".$_POST['id_catalog']."'>
</HEAD></HTML>";
} else puterror("Ошибка при добавлении продукции");
function links($id_catalog,$msg)
{
echo "<p>".$msg."</p>";
echo "<p><a href=# onClick='history.back()'>Вернуться к правке продукта</a></p>";
echo "<p><a href=index.php?id_parent=$id_catalog>Администрирование каталога продукции</a></p>";
exit();
}
|
Люди помагите, я уже 2 день сижу.
На всякий случай выдержка из мускула.
`id_product` int(11) NOT NULL auto_increment,
`post` tinytext NOT NULL,
`note` tinytext NOT NULL,
`tips` enum('tip','serch','bay','sel','yslygi','pred_rab') NOT NULL default 'tip',
`email` tinytext NOT NULL,
`name` tinytext NOT NULL,
`tel` tinytext NOT NULL,
`cena` enum('tvcen','torg','max','min') NOT NULL default 'tvcen',
`tcen` tinytext NOT NULL,
`strana` tinytext NOT NULL,
`gorod` tinytext NOT NULL,
`pos` int(11) NOT NULL default '0',
`id_catalog` int(8) NOT NULL default '0',
PRIMARY KEY (`id_product`),
KEY `id_catalog` (`id_catalog`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
| |
|
|
|
|
|
|
|
для: Antik_
(26.04.2007 в 03:55)
| | поставьте временно вместо puterror("Ошибка при добавлении продукции");
puterror("Ошибка при добавлении продукции"."<br>Запрос:<pre>\r\n$query\r\n".mysql_error()."</pre>");
|
| |
|
|
|
|
|
|
|
для: Antik_
(26.04.2007 в 03:55)
| | А если попробывать так:
$query = "INSERT INTO obiev(post,note,tips,email,name,tel,cena,tcen,strana,gorod,pos,id_catalog) VALUES (
'".$_POST['post']."',
'".$_POST['note']."',
'".$_POST['tips']."',
'".$_POST['email']."',
'".$_POST['name']."',
'".$_POST['tel']."',
'".$_POST['cena']."',
'".$_POST['tcen'].",
'".$_POST['strana']."',
'".$_POST['gorod']."',
".$_POST['pos'].",
".$_POST['id_catalog'].")";
|
| |
|
|
|
|
|
|
|
для: zerocool
(26.04.2007 в 10:18)
| | Попробывал всё вместе.Но не понел ошибки всеравно.
Вот то что вывело
Ошибка при добавлении продукции
Запрос:
INSERT INTO obiev(post,note,tips,email,name,tel,cena,tcen,strana,gorod,pos,id_catalog) VALUES (
'qwer',
'4',
'serch',
'hamerland@mail.ru',
'5',
'7',
'torg',
'4,
'4',
'4',
10,
3)
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '4',
'4',
10,
3)' at line
|
| |
|
|
|
|
|
|
|
для: Antik_
(26.04.2007 в 10:36)
| | У Вас после второй четверки апостроф не закрыт.
Не надо пробовать всё вместе. Вы не коктейль мешаете и не салат "оливье". | |
|
|
|
|
|
|
|
для: Trianon
(26.04.2007 в 10:38)
| | Пасиба заработало.
гм следом вопрос.
Есть страница, в ней
$query = "SELECT * FROM artpage";
if($pgs = mysql_query($query))
{
while(list($id_page,$part)=mysql_fetch_array($pgs, MYSQL_NUM))
{
echo "<li><a href=index.php?id_page=$id_page>$part</a></li> <a href=deletart.php?id_page=$id_page>удалить</a>
<a href=editpartform.php?id_page=$id_page>Изменить</a>";
}
} else puterror("Ошибка при обращении к блоку статей");
|
Удоление происходит нормально но вот редактирование нет.
Почему то $id_page пропускаеться
if(empty($_POST['name'])) links("Введите название раздела.");
$name = str_replace("'","`",$_POST['name']);
$query = "UPDATE artpage SET
name='$name'
WHERE id_artpage=$id_page";
if(mysql_query($query))
{
// В случае успешного добавления переходим на главную страницу
// системы администрирования
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD></HTML>";
}
else puterror("Ошибка при добавлении продукции"."<br>Запрос:<pre>\r\n$query\r\n".mysql_error()."</pre>");
|
Выводит вот такую бяку.
UPDATE artpage SET
name='н'
WHERE id_artpage=
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 4
|
| |
|
|
|
|
|
|
|
для: Antik_
(26.04.2007 в 10:46)
| | Вы нигде не присваиваете переменной $id_page никакого значения. Поэтому и пропускается. | |
|
|
|
|
|
|
|
для: Trianon
(26.04.2007 в 10:50)
| | НО при удолении ведь тоже тогда не должно присваиваться, а удоляет же.Тогда вопрос, как её присвоить... | |
|
|
|
|
|
|
|
для: Antik_
(26.04.2007 в 11:03)
| | Это не аргумент. Вероятно у Вас включен register_globals. Выключите - пропадет и удаление.
Чтобы ответить на вопрос, нужно смотреть код, который выводит форму редактирования и ссылки удаления. Кстати, код удаления Вы не привели. Какой был смысл на него ссылаться? | |
|
|
|
|
|
|
|
для: Antik_
(26.04.2007 в 11:03)
| | А приведите код удаления и сам скрипт который открывается при клике на ссылку ИЗМЕНИТЬ | |
|
|
|
|
|
|
|
для: zerocool
(26.04.2007 в 11:09)
| | Код удаления
$query = "DELETE FROM artpage WHERE id_artpage=$id_page";
if(mysql_query($query))
{
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD></HTML>";
} else puterror("Ошибка при удолении");
|
Код редактирование
require_once("../config.php");
if(!isset($_GET['button'])) $_GET['button'] = "Изменить";
if(!isset($_GET['title'])) $_GET['title'] = "Изменение раздела.";
if(!isset($_GET['action'])) $_GET['action'] = "editart.php";
?>
<p><a class=menu href="javascript: history.back()">Назад</a></p>
<form action=<?php echo $_GET['action']; ?> method=post>
<table>
<tr>
<td width="110"><p class=zag2>Название</td>
<td><input class=input type="text" name="name" size="40" maxlength="140" value="<?php echo $_GET['name']; ?>"></td>
</tr>
<tr>
<td></td>
<td><input class=button type="submit" value=<?php echo $_GET['button']; ?>></td>
</tr>
</table>
</form>
|
Обработчик
if(empty($_POST['name'])) links("Введите название раздела.");
$name = str_replace("'","`",$_POST['name']);
$query = "UPDATE artpage SET name='$name' WHERE id_artpage=$id_page";
if(mysql_query($query))
{
// В случае успешного добавления переходим на главную страницу
// системы администрирования
echo "<HTML><HEAD>
<META HTTP-EQUIV='Refresh' CONTENT='0; URL=index.php'>
</HEAD></HTML>";
}
else puterror("Ошибка при добавлении продукции"."<br>Запрос:<pre>\r\n$query\r\n".mysql_error()."</pre>");
|
| |
|
|
|
|
|
|
|
для: Antik_
(26.04.2007 в 11:11)
| | А где у вас в форме редактирования записана переменная $id_page ?
Наверно в форму надо добавить
<input type=hidden name=id_page value="<?php echo $_GET['id_page']; ?>">
| И в обработчике :
$query = "UPDATE artpage SET name='$name' WHERE id_artpage='$_POST[id_page]'";
|
| |
|
|
|
|
|
|
|
для: zerocool
(26.04.2007 в 11:18)
| | ПАсиба с меня Пиво, при встрече)))
Вообще то приводил
$query = "SELECT * FROM artpage";
if($pgs = mysql_query($query))
{
while(list($id_page,$part)=mysql_fetch_array($pgs, MYSQL_NUM))
{
echo "<li><a href=index.php?id_page=$id_page>$part</a></li> <a href=deletart.php?id_page=$id_page>удалить</a>
<a href=editpartform.php?id_page=$id_page>Изменить</a>";
}
} else puterror("Ошибка при обращении к блоку статей");
|
| |
|
|
|
|
|
|
|
для: Antik_
(26.04.2007 в 11:11)
| | Из этого кода неясно, какую именно artpage Вы собираетесь менять.
В форму этот параметр не передается вообще.
Код, который строит ссылки на удаление, тоже не виден. | |
|
|
|
|