无法使用 img PHP 从数据库中删除行
Can't delete a row from a Database using a img PHP
我正在为我的网站做后台,为了显示数据,我从数据库中获取了一个 table 来显示用户请求的所有升级,我正在考虑放 2 张图片,一张用于更新另一个用于删除同一行..
# Table from Database #
?>
<div id="DBForm">
<p id="title" align="center"> Upgrades</p>
<br/>
<?php
$resultado=mysql_query("SELECT * FROM upgrades");
if (mysql_affected_rows()>=1)
{
echo "<table class='DBTable'>";
echo "<tr>
<th>Nome</th>
<th>Upgrade</th>
<th>Morada</th>
<th>Contacto</th>
<th>NIF</th>
<th>Factura</th>
<th>Data</th>
<th>N Serie</th>
<th>Cupao</th>
<th>Alterar</th>
<th>Eliminar</th>
</tr>";
while ($linha=mysql_fetch_array($resultado))
{
echo "<tr align='center'>
<td>".$linha["nome"]."</td>
<td>".$linha["upgrade"]."</td>
<td>".$linha["morada"]."</td>
<td>".$linha["contacto"]."</td>
<td>".$linha["nif"]."</td>
<td>".$linha["factura"]."</td>
<td>".$linha["data_factura"]."</td>
<td>".$linha["n_serie"]."</td>
<td>".$linha["cupao"]."</td>
<td><a href=\"alterar.php\"><img src=images/alterar.png></img></a> </td>
<td><a href=\"eliminar.php\"><img src=images/eliminar.png></img></a> </td>
</tr>";
}
echo "</table>";
}
?>
</div>
一切正常,但是当我按 img 删除时,浏览器说我已成功删除该行,但是当我返回页面时该行仍然存在,这可能是什么?
#Code from img to delete the row#
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "loja";
$tbl_name = "upgrades";
// Create connection
mysql_connect($servername, $username, $password)or die ("Não houve conexão");
mysql_select_db("$dbname");
$id=$_REQUEST['id'];
$sql="DELETE FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
if ($result)
{
echo "Registo apagado com sucesso!";
echo "<br>";
echo "<a href='upgrades.php'> Voltar a upgrades </a>";
}
else
{
echo "ERRO!";
mysql_close();
}
?>
没有提供此值:
$id=$_REQUEST['id'];
请求页面时只有 link:
"<a href=\"eliminar.php\"><img src=images/eliminar.png></a>"
为了提供标识符,您需要将其添加到 link。也许是这样的:
"<a href=\"eliminar.php?id=".$linha["id"]."\"><img src=\"images/eliminar.png\"></a>"
(或 $linha
上的任何标识符)
此外,请注意您的代码对 SQL injection attacks 是完全开放的。您需要研究使用准备好的语句,而不是将用户输入直接放入 SQL 代码中。
旁注:您可以安全地删除 </img>
标签;这不是一个有效的标签。
我正在为我的网站做后台,为了显示数据,我从数据库中获取了一个 table 来显示用户请求的所有升级,我正在考虑放 2 张图片,一张用于更新另一个用于删除同一行..
# Table from Database #
?>
<div id="DBForm">
<p id="title" align="center"> Upgrades</p>
<br/>
<?php
$resultado=mysql_query("SELECT * FROM upgrades");
if (mysql_affected_rows()>=1)
{
echo "<table class='DBTable'>";
echo "<tr>
<th>Nome</th>
<th>Upgrade</th>
<th>Morada</th>
<th>Contacto</th>
<th>NIF</th>
<th>Factura</th>
<th>Data</th>
<th>N Serie</th>
<th>Cupao</th>
<th>Alterar</th>
<th>Eliminar</th>
</tr>";
while ($linha=mysql_fetch_array($resultado))
{
echo "<tr align='center'>
<td>".$linha["nome"]."</td>
<td>".$linha["upgrade"]."</td>
<td>".$linha["morada"]."</td>
<td>".$linha["contacto"]."</td>
<td>".$linha["nif"]."</td>
<td>".$linha["factura"]."</td>
<td>".$linha["data_factura"]."</td>
<td>".$linha["n_serie"]."</td>
<td>".$linha["cupao"]."</td>
<td><a href=\"alterar.php\"><img src=images/alterar.png></img></a> </td>
<td><a href=\"eliminar.php\"><img src=images/eliminar.png></img></a> </td>
</tr>";
}
echo "</table>";
}
?>
</div>
一切正常,但是当我按 img 删除时,浏览器说我已成功删除该行,但是当我返回页面时该行仍然存在,这可能是什么?
#Code from img to delete the row#
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "loja";
$tbl_name = "upgrades";
// Create connection
mysql_connect($servername, $username, $password)or die ("Não houve conexão");
mysql_select_db("$dbname");
$id=$_REQUEST['id'];
$sql="DELETE FROM $tbl_name WHERE id='$id'";
$result=mysql_query($sql);
if ($result)
{
echo "Registo apagado com sucesso!";
echo "<br>";
echo "<a href='upgrades.php'> Voltar a upgrades </a>";
}
else
{
echo "ERRO!";
mysql_close();
}
?>
没有提供此值:
$id=$_REQUEST['id'];
请求页面时只有 link:
"<a href=\"eliminar.php\"><img src=images/eliminar.png></a>"
为了提供标识符,您需要将其添加到 link。也许是这样的:
"<a href=\"eliminar.php?id=".$linha["id"]."\"><img src=\"images/eliminar.png\"></a>"
(或 $linha
上的任何标识符)
此外,请注意您的代码对 SQL injection attacks 是完全开放的。您需要研究使用准备好的语句,而不是将用户输入直接放入 SQL 代码中。
旁注:您可以安全地删除 </img>
标签;这不是一个有效的标签。