[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Обновление пункта меню..
nugle
Привет всем, на сайте обновляю пункты меню при помощи скрипта
<?php 

require "../options/db.php";


$name = trim(!empty($_POST['name'])) ? $_POST['name'] : null;
$position = trim(!empty($_POST['position'])) ? $_POST['position'] : null;
$name1 = !empty($_GET['name1']) ? $_GET['name1'] : null;
$id = !empty($_GET['id']) ? $_GET['id'] : null;
if ($sub) $id = !empty($_POST['id']) ? $_POST['id'] : null;
$sub = !empty($_POST['sub']) ? $_POST['sub'] : null;


$sql = "select * from menu where id='".$id."'";
$result = mysql_query($sql) or die(mysql_error ."<br />". $sql) ;

$row = mysql_fetch_assoc($result);

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Добавление меню</title>
<
link href="../class.css" rel="stylesheet" type="text/css" />
</
head>

<
body>
<
table align="center" width="960" height="437" border="0" cellpadding="0" cellspacing="0">
<
tr>
<
td height="198" colspan="2"> </td>
</
tr>
<
tr>
<?php

require "blocks/lefttd.php";

?>
<td width="711" align="left" valign="top">

<
br /><br />
<
form action="renew_menu.php?f=1" method="post">
Пункт меню: <input name="name" type="text" value="<?php echo $row['name'];?>" /><br />
Позиция пункта меню: <input name="position" type="text" value="<?php echo $row['position'];?>"/><br />
<
input name="id" type="hidden" value="<?php echo $id;?>" />
<
input name="sub" type="submit" class="but" value="Редактировать" />
</
form>
<?php

if($sub)
{
$sql2 = "update menu set name = '".$name."' where id ='".$id."'";
$result2 = mysql_query($sql2) or die(mysql_error ."<br />". $sql2);}
if($result2 === true) {echo "<br /><br />Данные успешно обновлены"; $id;}

?>



</td>
</
tr>
</
table>


</
body>
</
html>


Проблема в том что скрипт отвечает мне,что всё успешно обнавлено, но ничего подобного на самом деле...Если убрать в апдейт where, тогда обновляются все пункты меню..как быть?

Левый блок
<link href="../../class.css" rel="stylesheet" type="text/css" />

<
td width="249" align="left" valign="top">

<
div class="div_name">Навигация</div><br />

<
a href="new_menu.php">Добавить</a><br />
<
a href="index.php?go=renew">Редактировать</a><br />
<
a href="index.php?go=delete">Удалить</a><br />



</
td>


Страница с которой перехожу
<?php 

require "../options/db.php";

$f=0;
$l=0;
$go = !empty($_GET['go']) ? $_GET['go'] : null;
$f = !empty($_GET['f']) ? $_GET['f'] : null;
$name = trim(!empty($_POST['name'])) ? $_POST['name'] : null;
$position = trim(!empty($_POST['position'])) ? $_POST['position'] : null;
$name1 = !empty($_GET['name1']) ? $_GET['name1'] : null;
$position1 = !empty($_GET['position1']) ? $_GET['position1'] : null;



?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
title>Добавление меню</title>
<
link href="../class.css" rel="stylesheet" type="text/css" />
</
head>

<
body>
<
table align="center" width="960" height="437" border="0" cellpadding="0" cellspacing="0">
<
tr>
<
td height="198" colspan="2"> </td>
</
tr>
<
tr>
<?php

require "blocks/lefttd.php";


?>
<td width="711" align="left" valign="top">

<?php
if($f==0){
{

$sql = "select * from menu";
$result = mysql_query($sql) or die(mysql_error ."<br />". $sql) ;

echo "<br /><br />";

while($row = mysql_fetch_assoc($result))
{
if ($go=='renew') echo "<a href=renew_menu.php?id=".$row['id']."&name=".$row['name'].">".$row['name']."<br />";
if ($go=='delete') echo "<a href=delete_menu.php?id=".$row['id'].">".$row['name']."<br />";
}
}}

else{ echo "<br /><br />"; }
?>








</td>
</
tr>
</
table>


</
body>
</
html>




Спустя 13 минут, 10 секунд (3.12.2010 - 14:18) inpost написал(а):
А ты с $_GET & $_POST не запутался? =)
Кстати, в этом и ошибка.

Спустя 6 минут, 51 секунда (3.12.2010 - 14:25) nugle написал(а):
Да вроде нет, я 10ра3 это пресматривал или я такой невнемательный?

Спустя 11 минут, 58 секунд (3.12.2010 - 14:37) inpost написал(а):
Не стоит использовать одно и то же: и $_GET = id & $_POST = id.
Смотри, перед самим запросом сделай:
echo $id.$name.$position. Мне кажется, что у тебя в переменной ID пусто должно быть.

Спустя 6 минут, 59 секунд (3.12.2010 - 14:44) nugle написал(а):
там всё верно и не пусто, дело в чём то другом, почему же бе3 where всё работает?

Спустя 11 минут, 4 секунды (3.12.2010 - 14:55) inpost написал(а):
$sql2 = "UPDATE `menu` SET
`name` = '"
.$name."'
WHERE `id` = "
.$id;

$sql3 = "UPDATE `menu` SET
`name` = 'BEER'
WHERE `id` = 7;

Спустя 3 часа, 29 минут, 34 секунды (3.12.2010 - 18:25) nugle написал(а):
я вставил в БД вот это
UPDATE `menu` SET `name` = 'BEER' WHERE `id` = 7;

ТАм работает
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.