2014-08-27 2 views
-2

Я хочу обновить данные из формы в базу данных с помощью PHP. Но в моем коде слишком много проблем, как «Не удалось обновить данные: Неизвестный столбец« Nabeel »в« списке полей »».Обновить данные из формы в базу данных с помощью php

Пожалуйста, проверьте код и дайте мне решение.

Thanks, Nabeel.

<!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>Untitled Document</title> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script> 
<script type="text/javascript"> 
function doSomething() { 
    alert('Are you sure you want to delete this file ??'); 
} 
</script> 
</head> 

<body> 



<h2>Update Data Using PHP</h2> 
</div> 

<?php 
$con = mysql_connect("localhost", "root", ""); 
$db = mysql_select_db("firstphp", $con); 
if (isset($_GET['submit'])) { 
$id = $_GET['id']; 
$username = $_GET['username']; 
$passward = $_GET['passward']; 
$name = $_GET['name']; 

$query = mysql_query("update users set 
username='$username', passward='$passward', name='$name' where id='$id'", $con); 
} 
$query = mysql_query("select * from users", $con); 
while ($row = mysql_fetch_array($query)) 
{ 
    echo "<b><a href='update.php?update={$row['id']}'>{$row['id']}</a></b>"; 
    echo "<br />"; 
} 
?> 
</div><?php 
if (isset($_GET['submit'])) { 
$submit = $_GET['submit']; 
$query1 = mysql_query("select * from users where id=$submit", $con); 
while ($row1 = mysql_fetch_array($query1)) { 
echo "<form method='get'>"; 
echo "<hr/>"; 
echo"<input class='input' type='hidden' name='id' value='{$row1["id"]}' />"; 
echo "<br />"; 
echo "<label>" . "Name:" . "</label>" . "<br />"; 
echo"<input class='input' type='text' name='username' value='{$row1["username"]}' />"; 
echo "<br />"; 
echo "<label>" . "Email:" . "</label>" . "<br />"; 
echo"<input class='input' type='text' name='passward' value='{$row1["passward"]}' />"; 
echo "<br />"; 
echo "<label>" . "Name:" . "</label>" . "<br />"; 
echo"<input class='input' type='text' name='name' value='{$row1["name"]}' />"; 
echo "<br />"; 


echo "<input class='submit' type='submit' name='submit' value='submit' />"; 
echo "</form>"; 
} 
} 
if (isset($_GET['submit'])) { 
echo '<div class="form" id="form3"><br><br><br><br><br><br> 
<Span>Data Updated Successfuly......!!</span></div>'; 
} 

mysql_close($con); 
?> 
</bod 

></body> 
</html> 
+1

'где ID = $ submit'? Вы уверены, что это то, что вы хотите использовать? Это ваша кнопка отправки '' –

+0

** Danger **: вы используете [** устаревший ** API баз данных] (http://stackoverflow.com/q/12859942/19068) и должен использовать [современную замену] (http://php.net/manual/en/mysqlinfo.api.choosing.php). Вы также уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php). – Quentin

+0

Плюс, ваш ' ' –

ответ

0
$query1 = mysql_query("select * from users where id=$submit", $con); 

Изменения в

$query1 = mysql_query("select * from users where id='".$submit."'", $con); 
+0

не работает –

+0

Попробуйте новый код, который я обновил , –

+0

он также не работает. –

0

Попробуйте это:

$query1 = mysql_query("select * from users where id={$submit}", $con); 

Фигурные скобки убедитесь, что переменная PHP интерпретируется и не воспринимается как простая строка.

0

1) Вы не можете использовать where id=$submit, так как Id должен быть целым числом. $submit всегда имеет значение submit (потому что вы установите его в том, что здесь:

echo "<input class='submit' type='submit' name='submit' value='submit' />"; 

Вы хотите использовать значение идентификатора из строки:

echo"<input class='input' type='hidden' name='id' value='{$row1["id"]}' />"; 

2) Заменить

$query1 = mysql_query("select * from users where id=$submit", $con); 

с

$query1 = mysql_query("select * from users where id=$id", $con); 

и убедитесь, что id является целым числом.

3) не использовать MySQL, использовать MySQLi вместо: The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

4) опечатка слово password. Переход от 'passward' в password

5) Ваш HTML сломана к концу:

</bod 

></body> 
</html> 

Удалять </bod >

6) Нет необходимости использовать html4 декларацию DOCTYPE. Заменить

<!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"> 

с

<!DOCTYPE html> 
Смежные вопросы