[英]Deleting row using PHP Mysql
如果沒有行計數或小於表1中的行數,則嘗試從表2中刪除。 使用變量($ group)。 我認為問題出在刪除table.1中的行后,沒有變量可以刪除table.2中的行,因此它不會刪除該行。 我不知道這是否有意義。 這是代碼。
$q = mysql_query("SELECT `group name` FROM `group` WHERE cid = '$id'") or die(mysql_error());
list($group) = mysql_fetch_row($q);
$n = mysql_query("select count(`group name`) as total from `group` WHERE user_id
= '$_SESSION[user_id]' AND cid = '$id' ");
$r = mysql_fetch_array($n);
if($r['total'] = 0 ) {
mysql_query("DELETE FROM `group log`
WHERE `group name`='$group'
") or die(mysql_error());
}
我也嘗試過此操作,但是它只是在用戶刪除所有行之后才刪除該行:
mysql_query("DELETE FROM `group log`
WHERE NOT EXISTS(SELECT NULL
FROM `group` g
WHERE g.`group name` = `group name`)");
`WHERE g.`group name` = `group name`)
那就是說
where `group name` = `group name`
我總是懷疑這是真的
where `group name` = 'group name'
要么
where `group name` = $group_name
在第一種情況下,您錯過了a =
應該是
if($r['total'] == 0 ) {
如果您只是想刪除一個表的記錄,而該表的第二個表中沒有對應的匹配項,則MySQL中的DELETE
方法支持LEFT JOIN
語法:
DELETE gl.*
FROM `group log` gl
LEFT JOIN `group` g
ON g.`group name` = gl.`group name`
WHERE g.`group name` IS NULL
或者,如果您要從日志表中刪除特定組,請執行以下操作:
DELETE gl.*
FROM `group log` gl
LEFT JOIN `group` g
ON g.`group name` = gl.`group name`
WHERE g.`group name` IS NULL
AND gl.`group name` = '$group'
除了以前的答案外,我還將交換
$n = mysql_query("select count(`group name`) as total from `group` WHERE user_id='$_SESSION[user_id]' AND cid = '$id' ");
同
$n = mysql_query("select count(`group name`) as total from `group` WHERE user_id= '{$_SESSION['user_id']}' AND cid = '$id' ");
為了避免出現不確定的恆定錯誤通知,具體取決於所使用的錯誤設置:
$ _SESSION [user_id]實際上正在尋找常量user_id的值用作$ _SESSION中的鍵,但默認為字符串'user_id'(盡管有警告)。
另外,您是否檢查了會話是否已啟動( session_start() )和$ _SESSION ['user_id']是否已設置?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.