Я весь день вытаскиваю свои волосы, пытаясь заставить это работать. Я новичок в PHP, но в прошлом имел некоторый разумный успех. BUt Я не могу понять это.Обновление PHP в базе данных не работает
Ниже приведена обновленная таблица в моей базе данных MySQL, и код дает мне успех, но изменения не отображаются в моей базе данных. Что может быть проблемой?
Моя первая страница выглядит следующим образом (config.php связывает меня с базой данных):
<?php
include("config.php");
$sql="SELECT * FROM admin";
$result=mysql_query($sql);
?>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<td>
<table width="400" border="1" cellspacing="0" cellpadding="3">
<tr>
<td colspan="4"><strong>List data from mysql </strong> </td>
</tr>
<tr>
<td align="center"><strong>First Name</strong></td>
<td align="center"><strong>Last Name</strong></td>
<td align="center"><strong>User Level</strong></td>
<td align="center"><strong>Update</strong></td>
</tr>
<?php
while($rows=mysql_fetch_array($result)){
?>
<tr>
<td><? echo $rows['firstname']; ?></td>
<td><? echo $rows['lastname']; ?></td>
<td><? echo $rows['userlevel']; ?></td>
<td align="center"><a href="update.php?id=<? echo $rows['id']; ?>">update</a></td>
</tr>
<?php
}
?>
</table>
</td>
</tr>
</table>
<?php
mysql_close();
?>
</center>
</body>
</html>
После нажатия кнопки Обновить, он затем переходит на страницу с этим кодом:
<?php
include("config.php");
$id=$_GET['id'];
$sql="SELECT * FROM admin WHERE id='$id'";
$result=mysql_query($sql);
$rows=mysql_fetch_array($result);
?>
<center>
<table width="400" border="0" cellspacing="1" cellpadding="0">
<tr>
<form name="form1" method="post" action="update_ac.php">
<td>
<table width="100%" border="0" cellspacing="1" cellpadding="0">
<tr>
<td> </td>
<td colspan="3"><strong>Update data in mysql</strong> </td>
</tr>
<tr>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
<td align="center"> </td>
</tr>
<tr>
<td align="center"> </td>
<td align="center"><strong>First Name</strong></td>
<td align="center"><strong>Last Name</strong></td>
<td align="center"><strong>User Level (1 to 4)</strong></td>
</tr>
<tr>
<td> </td>
<td align="center">
<? echo $rows['firstname']; ?>
</td>
<td align="center">
<input name="lastname" type="text" id="lastname" value="<? echo $rows['lastname']; ?>" />
</td>
<td>
<input name="userlevel" type="text" id="userlevel" value="<? echo $rows['userlevel']; ?>" size="15">
</td>
</tr>
<tr>
<td> </td>
<td>
<input name="id" type="hidden" id="id" value="<? echo $rows['id']; ?>">
</td>
<td align="center">
<input type="submit" name="Submit" value="Submit">
</td>
<td> </td>
</tr>
</table>
</td>
</form>
</tr>
</table>
</center>
</body>
</html>
это затем перенаправляет на это:
<?php
include("config.php");
// update data in mysql database
$sql="UPDATE admin SET lastname='$lastname', userlevel='$userlevel' WHERE id='$id'";
$result=mysql_query($sql);
// if successfully updated.
if($result){
echo "Successful";
echo "<BR>";
echo "<a href='welcome.php'>Return to Dashboard</a>";
}
else {
echo "ERROR";
}
?>
он всегда повторяет, что он написал успешно, но я никогда г отпустите его, чтобы он работал один раз. В чем проблема?
Спасибо.
[Не используйте mysql_ расширение *] (http://www.php.net/en/mysql_query), поскольку она является устаревшим. Вместо этого используйте [PDO] (http://php.net/manual/en/book.pdo.php) или [MySQLi] (http://php.net/manual/en/book.mysqli.php). Кроме того, ваш код широко открыт для SQL-инъекции. –
Вы используете «$ lastname» и «$ userlevel», но я не вижу их в любом месте в вашем коде? – Marciano
Значит, вы не обсуждаете решение вместо отметки -1. Почему вы отправили этот вопрос? – Bilal