2013-03-28 3 views
0

У меня практически нет опыта программирования и реализации этого первого проекта, я немного зациклен на том, как обновлять базу данных, поэтому я нажимаю на редактирование, и правильная запись загружается в обновление экрана редактирования .phpPHP-форма: не обновлять базу данных mysql

Когда я нажимаю обновление, я получаю сообщение от updated.php о том, что база данных обновлена, но база данных не обновляется, когда я показываю записи, они такие же, как и до обновления, спасибо заранее за вашу помощь.

следующий код:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
    <title>Form Edit Data</title> 
</head> 

<body> 
    <table border=1> 
    <tr> 
     <td align=center>Form Edit Employees Data</td> 
    </tr> 
    <tr> 
    <td> 
     <table> 
     <? 
     $user_name = ""; 
     $password = ""; 
     $database = ""; 
     $server = "localhost"; 

     mysql_connect($server, $user_name, $password); 
     $db_found = mysql_select_db($database); 
     $id = $_GET['id']; 
     $order = "SELECT * FROM MY_ID where ID = ' " .$id . " ' "; 
     $result = mysql_query($order); 
     $row = mysql_fetch_array($result); 
     ?> 
     <form method="post" action="edit_data.php"?id=<?= $id ?>> 
      <input type="text" name="id" value="<? echo "$row[ID]"?>"> 
      <tr>   
       <td>First Name</td> 
       <td> 
        <input type="text" name="FirsName" size="20" value="<? echo "$row[FirstName]"?>"> 
       </td> 
      </tr> 
      <tr> 
       <td>Sur Name</td> 
       <td> 
        <input type="text" name="SurName" size="40" value="<? echo "$row[SurName]"?>"> 
       </td> 
      </tr> 
      <tr> 
       <td>Address</td> 
       <td> 
        <input type="text" name="Address" size="40" value="<? echo "$row[Address]"?>"> 
       </td> 
      </tr> 
      <tr> 
       <td align="right"> 
        <input type="submit" name="submit" value="submit"> 
       </td> 
      </tr> 
     </form> 
     </table> 

    </td> 
    </tr> 
    </table> 
</body> 
</html> 

и вот другой файл

<?php 
$user_name = ""; 
$password = ""; 
$database = ""; 
$server = ""; 

mysql_connect($server, $user_name, $password); 
$db_found = mysql_select_db($database); 

$id = $_REQUEST['ID']; 
$FirstName = trim(mysql_real_escape_string($_POST["FirstName"])); 
$SurName = trim(mysql_real_escape_string($_POST["SurName"])); 
$Address = trim(mysql_real_escape_string($_POST["Address"])); 

$sql = "UPDATE MY_ID SET FirstName='$FirstName',SurName='$SurName',Address='$Address' WHERE ID='$id'"; 
$result=mysql_query($sql); 


if ($result){ 
    echo "Successful"; 
    echo "<BR>"; 
    echo "<a href='edit.php'>View result</a>"; 
} 
else { 
    echo "ERROR"; 
} 

?> 

ответ

0

Похоже, вы забыли кавычку и полную остановку. Вы должны написать: «„$ пример..“»

$sql = "UPDATE MY_ID SET FirstName='".$FirstName."',SurName='".$SurName."',Address='".$Address.:' WHERE ID='".$id."'"; 
0

Это происходит потому, что ваш метод форма POST, и вы пытаетесь GET ID. Вероятно, ID возвращает null. Мое предложение поставить скрытый вход в форму, как с name="ID", а затем прочитать его в публикуемую странице, как $_POST["ID"];

0

Да, ответ, как сказал Mansours. Вы не должны использовать единую квоту для своей переменной.

Таким образом, это плохая практика написания кода что-то вроде этого:

<input type="text" value="<?php echo "$row[name]"; ?>"> 

должно быть

<input type="text" value="<?php echo $row['name']; ?>"> 

было бы ясно, а также, при вставке или обновлении записи вы должны написать, как следующие:

$sql = "UPDATE MY_ID SET FirstName='" . $FirstName . "', 
         SurName='" . $SurName . "', 
         Address='" . $Address . "' 
     WHERE ID='" . $id . "'"; 
mysql_query($sql); 
Смежные вопросы