我是编码新手,我正在使用 php 和 mysql 制作一个管理面板来显示表单中的客户端数据。
现在我想制作一个按钮来显示数据是否已被处理。这个想法是,我有一个名为 star 的列,如果 star == 读取该显示为“绿色”,如果 star =! 读取显示“红色”。
然后如果按下按钮,如果 star == read 更新为未读但如果 star =! 阅读更新阅读。
我有这样的按钮:
<td><a href=\"read.php?id=".$row['id']."\" class=\"buttonize\">star</a></td>
和 read.php 像这样:
<?php
include("db.php");
$id = $_GET['id'];
$query = "UPDATE users SET star='read' WHERE id = '$id'";
mysqli_query($link, $query) or die('Database error!');
header('location:admin_main.php');
?>
这只会更新要读取的行,并且无法再次变为未读状态。
但我不知道如何制定 if 语句。
如果有人有任何建议,那将不胜感激。
编辑
展示一些我尝试过的东西:
我在数据表中添加了一个新列:
<td>".$star."</td>
然后我尝试使用下面的代码来检查数据库:
$query = "SELECT star FROM users";
$selectie = mysqli_query($link, $query) or die($query."<br>".mysql_error());
if($selectie == 'read') {
$star = 'read';
} else {
$star = 'unread';
}
而对于 read.php:
<?php
include("inc/verbinden.php");
$id = $_GET['id'];
$query = "SELECT star FROM users";
$selectie = mysqli_query($link, $query) or die($query." <br>".mysql_error());
if($selectie == 'read') {
$query = "UPDATE users SET star='unread' WHERE id = '$id'";
mysqli_query($link, $query) or die('Database error!');
} else {
$query = "UPDATE users SET star='read' WHERE id = '$id'";
mysqli_query($link, $query) or die('Database error!');
}
header('location:admin_main.php');
?>
但我意识到 if/else 是错误的。
你快到了。您错过的是循环(成功)结果,例如使用while
循环:
旁注:我添加(int)
了 GET 数组,这有助于防止可能的SQL 注入并更正了mysql_error()
. 该 api 不会与 mysqli_* api 混合。
<?php
include("inc/verbinden.php");
if(!empty($_GET['id'])){
$id = (int)$_GET['id'];
}else{
echo "The GET array is empty.";
exit; // Stops further execution.
}
$query = "SELECT star FROM users";
$selectie = mysqli_query($link, $query) or die($query." <br>".mysqli_error($link));
while($row = mysqli_fetch_array($selectie)){
if($row['star'] == 'read') {
$query = "UPDATE users SET star='unread' WHERE id = '$id'";
mysqli_query($link, $query) or die('Database error!'); // use mysqli_error($link)
}else{
$query = "UPDATE users SET star='read' WHERE id = '$id'";
mysqli_query($link, $query) or die('Database error!'); // use mysqli_error($link)
}
}
header('location:admin_main.php');
exit; // Stops further execution.
注意:您可以替换mysqli_fetch_array()
为mysqli_fetch_assoc()
.
此外,最好mysqli_affected_rows()
在使用 UPDATE 时使用,以获得实际的真实性。
您可以阅读这些功能:
但要注意的一件事是read
and Read
,以及unread
和Unread
是两种不同的动物。因此,请绝对确保这些确实是您数据库中的值以及数据库中的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句