UPDATE syntax-a не работи

PHP_Masters

Registered
Код:
if($_GET['id']==$id && $_GET['action']=="edit")
	{
		$rs=mysql_query('SELECT * FROM forums WHERE id='.$id);
		$row=mysql_fetch_assoc($rs);
		echo 'Вие редактирате форума с име: '.$row['title'].', Описание :'.$row['desc'].' и с id: '.$row['id'];
		?>
		<form action="admin.php" method="POST">
		Заглавие: <input type='text' name='title2' value='<?php echo $row['title'];?>'/><br/>
		Описание: <input type='text' name='desc2' value='<?php echo $row['desc'];?>'/><br/>
		<input type='submit' name='edit' value='Редактирай'/><br/>
		</form>
		<?php
	}
	$title_edited=htmlspecialchars($_POST['title2']);
	$desc_edited=htmlspecialchars($_POST['desc2']);
	if(isset($_POST['edit']))
	{
		if(strlen($title_edited)>=4)
		{
			if(strlen($title_edited) <= 30)
			{
				if(strlen($desc_edited) <= 50)
				{
					$id=$_GET['id'];
					run_q('UPDATE `forums` SET `title`="'.$title_edited.'",`desc`="'.$desc_edited.'" WHERE id='.$id);
					echo 'Успешно обновяване!<br/>';
				}
				else
				{
					echo 'В полето с описанието може да има максимум 50 символа!<br/>';
				}
			}
			else
			{
				echo 'В полето с заглавието може да има максимум 30 символа!<br/>';
			}
		}
		else
		{
			echo 'Трябва да има поне по 4 символа в полето с заглавието!<br/>';
		}
	}
 
PHP_Masters каза:
if($_GET['id']==$id && $_GET['action']=="edit")
{
$rs=mysql_query('SELECT * FROM forums WHERE id='.$id);
$row=mysql_fetch_assoc($rs);
echo 'Вие редактирате форума с име: '.$row['title'].', Описание :'.$row['desc'].' и с id: '.$row['id'];
?>
<form action="admin.php" method="POST">
Заглавие: <input type='text' name='title2' value='<?php echo $row['title'];?>'/><br/>
Описание: <input type='text' name='desc2' value='<?php echo $row['desc'];?>'/><br/>
<input type='submit' name='edit' value='Редактирай'/><br/>
</form>
<?php
}
$title_edited=htmlspecialchars($_POST['title2']);
$desc_edited=htmlspecialchars($_POST['desc2']);
if(isset($_POST['edit']))
{
if(strlen($title_edited)>=4)
{
if(strlen($title_edited) <= 30)
{
if(strlen($desc_edited) <= 50)
{
$id=$_GET['id'];
run_q('UPDATE `forums` SET `title`="'.$title_edited.'",`desc`="'.$desc_edited.'" WHERE id='.$id');
echo 'Успешно обновяване!<br/>';
}
else
{
echo 'В полето с описанието може да има максимум 50 символа!<br/>';
}
}
else
{
echo 'В полето с заглавието може да има максимум 30 символа!<br/>';
}
}
else
{
echo 'Трябва да има поне по 4 символа в полето с заглавието!<br/>';
}
}
 
@Karcho, пробвал съм.

@Replace, аз така отварям място за още код, виж сега коя кавичка какво затваря

run_q('UPDATE `forums` SET `title`="'.$title_edited.'",`desc`="'.$desc_edited.'" WHERE id='.$id);

С тези отваряме и затваряме

Сега пак отваряме и после пак затваряме

Сега пак отваряме и после пак затваряме

така, че няма смисъл да слагам
 
Код:
	if($_GET['id']==$id && $_GET['action']=="edit")
   {
      $rs=mysql_query("SELECT * FROM `forums` WHERE `id` = '$id'") or die(mysql_error());
      $row=mysql_fetch_assoc($rs);
      echo 'Вие редактирате форума с име: '.$row['title'].', Описание :'.$row['desc'].' и с id: '.$row['id'].'';
      ?>
      <form action="admin.php" method="POST">
      Заглавие: <input type='text' name='title2' value='<?php echo $row['title'];?>'/><br/>
      Описание: <input type='text' name='desc2' value='<?php echo $row['desc'];?>'/><br/>
      <input type='submit' name='edit' value='Редактирай'/><br/>
      </form>
      <?php
   }
   $title_edited=htmlspecialchars($_POST['title2']);
   $desc_edited=htmlspecialchars($_POST['desc2']);
   if(isset($_POST['edit']))
   {
      if(strlen($title_edited)>=4)
      {
         if(strlen($title_edited) <= 30)
         {
            if(strlen($desc_edited) <= 50)
            {
               $id=$_GET['id'];
               mysql_query("UPDATE `forums` SET `title` = '$title_edited', `desc` = '$desc_edited' WHERE `id` = '$id'");
               echo 'Успешно обновяване!<br/>';
            }
            else
            {
               echo 'В полето с описанието може да има максимум 50 символа!<br/>';
            }
         }
         else
         {
            echo 'В полето с заглавието може да има максимум 30 символа!<br/>';
         }
      }
      else
      {
         echo 'Трябва да има поне по 4 символа в полето с заглавието!<br/>';
      }
   }
 
Така ?

run_q("UPDATE `forums` SET `title`='$title_edited',`desc`='$desc_edited' WHERE id='$id'"); че бях забравил $
 
@kulov, не.


Аз си мисля, че може да е заради това WHERE, когато се натисне бутона 'Редактирай' и то презарежда страницата и вече тези action=edit?id=2(например) вече ги няма и за това mysql не знае кое да обнови

ЕДИТ:@Karcho аз го сложих, все пак оглеждам кода преди да го сложа
 
PHP_Masters каза:
action=edit?id=2(например) вече ги няма и за това mysql не знае кое да обнови

Сложи ги в action-a на формата ИЛИ добави id-то като hidden поле (ако това е проблема де)
 

Back
Горе