检查数据库中的数据并根据检索的数据更改值

时间:2014-01-05 00:23:26

标签: php mysql if-statement

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

在我的情况下,on是“read.png”,off是“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语句”),只有两个中的一个工作。

我错过了什么?

1 个答案:

答案 0 :(得分:0)

修改

您无法同时使用"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);
}