php - 检查数据库内的数据并根据检索到的数据更改值

标签 php mysql if-statement

在我的数据库中,我有许多用户。数据库为每个用户存储一个值(图像的 URL),无论他是否收到红色消息。所有用户都显示在消息下方,因此他们可以在红色消息后按自己的名字。我想要的是,当用户单击他的图像时,代码必须根据图像的值更改图像的 URL。更像是一个开关。例如: 如果该值显示“打开”,我需要代码将其更改为“关闭”。 如果该值是“off”,我需要代码将其更改为“on”。

就我而言,打开是“read.png”,关闭是“unread.png”。 所有值都通过地址栏发送,我使用 $_GET 来获取值。

我的代码:

$sql2 = "SELECT * FROM $tbl_name WHERE id = ".$_GET['id'];
$result2 = mysql_query($sql2);
$url = $_POST['url'];           // read.png
$herstel = $_POST['herstel'];       // unread.png
$tabel = $_POST['tabel'];           // urlJef
$tabel_content = $result2[$tabel];          // content from $tabel
if ($tabel_content == $url){
    $sql = "UPDATE " . mysql_real_escape_string($tbl_name) .
       " SET ".$_GET['tabel']." = '".$_GET['herstel'].
       "' WHERE id = ".$_GET['id'];
    $result = mysql_query($sql);
} 
else if ($tabel_content == $herstel) {
    $sql = "UPDATE " . mysql_real_escape_string($tbl_name) .
       " SET ".$_GET['tabel']." = '".$_GET['url'].
       "' WHERE id = ".$_GET['id'];
    $result = mysql_query($sql);
}

编辑

if($result){
    echo "top.location.href = 'index.php';"; 
}else {
    echo "That didn't work";
}

两个代码都是单独工作的。因此,如果我只创建一个 if-statement ,它就可以工作。两个代码的。但不知何故,如果我将它们两者混合在一起(通过添加“else if-语句”),则只有两者之一有效。

我错过了什么?

最佳答案

编辑:

您不能同时使用"POST""GET" 方法发送数据。它必须只是其中之一,但在您的代码中使用 $_POST$_GET 来检索该数据。您必须检查使用哪种方法发送数据并使用适当的数组,或者您可以使用适用于这两种方法的 $_REQUEST

由于您使用 GET 方法发送数据,因此您的代码应如下所示:(每个 _POST 均更改为 _GET)。

此外,您也无法通过这种方式从 $tabel 获取内容 ($tabel_content = $result2[$tabel];)。您应该使用 $row = mysql_fetch_assoc($result2); 然后 $tabel_content = $row[$tabel];

$sql2 = "SELECT * FROM $tbl_name WHERE id = ".$_GET['id'];
$result2 = mysql_query($sql2);
$url = $_GET['url'];           // read.png
$herstel = $_GET['herstel'];       // unread.png
$tabel = $_GET['tabel'];           // urlJef
$row = mysql_fetch_assoc($result2);
$tabel_content = $row[$tabel];
if ($tabel_content == $url){
    $sql = "UPDATE " . mysql_real_escape_string($tbl_name) .
       " SET ".$_GET['tabel']." = '".$_GET['herstel'].
       "' WHERE id = ".$_GET['id'];
  $result = mysql_query($sql);
} 
else if ($tabel_content == $herstel) {
    $sql = "UPDATE " . mysql_real_escape_string($tbl_name) .
       " SET ".$_GET['tabel']." = '".$_GET['url'].
       "' WHERE id = ".$_GET['id'];
  $result = mysql_query($sql);
}

关于php - 检查数据库内的数据并根据检索到的数据更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20928478/

相关文章:

php - 向mysql数据库添加数据时无法访问网站

php - 我应该继续依赖代码生成来生成我的模型和 CRUD 吗?

php - 使用 PHP 使用 HTML 表操作 MySQL 结果

java - if 语句什么时候完成条件检查?

r - 嵌套 ifelse 语句的可能数量是否有限制

java - 两个问题。不添加到数组中的下一个索引,也不从数组中删除

php - "yield"覆盖 "yield from"项

javascript - 使用 websocket 的聊天应用程序

mysql - 如何退出 mysql 触发器中的一系列 If/else 条件?

java - 尝试将 sql 数据库中的信息显示到 html 表中