我是编码的新手,我正在使用php和mysql创建一个管理面板来显示来自表单的客户数据。
现在我想制作一个按钮来显示数据是否已被处理。
我的想法是,我有一个名为star的列,如果star == read,则显示“green”,如果是star =!读取显示“红色”。
然后,如果按下按钮,如果star ==读取更新为未读但是如果star =!读更新阅读。
我有这样的按钮:
<?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');
?>
和read.php这样:
<td>".$star."</td>
这只是更新要读取的行,并且无法再次被读取 但我不知道如何制定if语句。
如果有人有任何建议,我们非常感激。
编辑
显示我尝试的一些内容:
我在数据表中添加了一个新列:
$query = "SELECT star FROM users";
$selectie = mysqli_query($link, $query) or die($query."<br>".mysql_error());
if($selectie == 'read') {
$star = 'read';
} else {
$star = 'unread';
}
然后我尝试使用下面的代码检查数据库:
<?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');
?>
对于read.php:
<Redirect>
但我意识到if / else是错误的。
答案 0 :(得分:1)
你快到了。您错过的是循环(成功)结果,例如使用while
loop:
附注:我为GET数组添加了(int)
,这有助于防范可能SQL injection并更正使用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()
。
此外,最好在使用UPDATE时使用mysqli_affected_rows()
以获得真实性。
您可以阅读这些功能:
值得注意的是,read
和Read
以及unread
和Unread
是两种不同的动物。因此,请确保这些确实是数据库中的值以及数据库中的值。