在我的数据库中,我有许多用户。数据库为每个用户存储一个值(图像的 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/