好的,我在这里得到的是一个PHP生成的表,其中的值是从数据库中提取的。现在,如果管理员已登录,我想添加一个选项来从数据库中删除一行。
我已经完成了所有设置的结构,但是我不知道该删除该行的链接路径中放置了什么。我怎么能这样做?
<?php
$rb = 1;
include 'konekcija.php';
$query = "SELECT * FROM oglasi";
$rezultat = mysql_query($query);
while($niz = mysql_fetch_array($rezultat)){
echo "<tr><td>" . $rb . "</td><td>" . $niz['model'] . "</td><td>" . $niz['cena'] . "</td><td><img src='" . $niz['slika_path'] . "'</img></td>";
if($_SESSION['uloga'] == "admin"){
echo "<td><a href='#'>Obrisi</a></td>";
}
echo "</tr>";
$rb++;
}
?>
答案 0 :(得分:0)
您可以尝试类似
的内容echo "<td><a href='delete.php?row=" .$niz['id']. "'>Obrisi</a></td>";
其中delete.php
是一个检查用户是否为管理员的php页面,通过GET解析id
值(始终记得进行适当的转义以避免注入,或使用其他查询系统,如prepared statements
或stored procedures
),并删除具有指定ID的行。当然,每条记录都必须具有唯一的ID。最终页面重定向到表格视图页面。
重要的旁注: mysql_*
函数已被弃用,请改用mysqli_*
!
答案 1 :(得分:0)
您应该用来删除行的第一个链接将是您创建的任何链接。
因此,您必须创建一个新的php页面,或修改现有的页面。处理删除行的请求。
这是一个简单的例子:
handler.php
<?php
//execute database connection here
switch($_GET['action'])
{
case 'delete':
mysql_query('DELETE FROM `TABLE_NAME` WHERE '.$_GET['where']);
break;
case 'add':
//parse info and submit request to db
break;
case 'edit':
//parse info and submit request to db
break;
}
//close db connection
?>
免责声明!这个例子绝不安全,不要在生产中使用它。
然后您使用的绝对链接将是:(非转义版)
http://host.com/pathtofile/handler.php?action=delete&where=(
{ROW_NAME {1}}
答案 2 :(得分:0)
国
$rb = 1;
include 'konekcija.php';
$query = "SELECT * FROM oglasi";
$rezultat = mysql_query($query);
while($niz = mysql_fetch_array($rezultat)){
echo "<tr><td>" . $rb . "</td><td>" . $niz['model'] . "</td><td>" . $niz['cena'] . "</td><td><img src='" . $niz['slika_path'] . "'</img></td>";
if($_SESSION['uloga'] == "admin"){
echo "<td><a href='#'>Obrisi</a></td>";
}
echo "</tr>";
$rb++;
}
&GT;