【发布时间】:2017-11-11 13:48:41
【问题描述】:
我创建了两个表,simplecmets 和 commentors,并将它们与INNER JOIN 连接起来。
- Simplecmets 是每个评论者的详细信息,包括他们的评论、reg_date、commentorid 等...
- Commentors 是评论者的个人信息,包含以下列:id、name、email..
我已成功加入它们,但我发现很难从加入的表中删除。
我想让它像这样的逻辑:
如果评论者的最后一行名为 -- 假设为 A-- 然后从表中删除他/她的评论详细信息和 A 本人。
否则如果 A 多次发表评论,使用不同的 cmets,请删除他/她的评论详细信息,但保留他/她的个人信息,因为 A 有其他 cmets。 p>
这就是我的做法:
if (!empty($_POST["delete"]))
{
foreach ($_POST["delete"] as $key => $value)
{
$resultid = $conn->query("SELECT commentorid FROM `simplecomments` WHERE id=".$value);
$rowid = $resultid->fetch_assoc();
$outputdelete = $rowid["name"] . " has been deleted" . "<br>";
$deletedname = $deletedname.$outputdelete;
$RES = mysql_num_rows($resultid);
$counter = 0;
while($row = $RES)
{
//IF IT'S LAST ROW, DELETE COMMENTOR AND HIS/HER COMMENTDETAILS
if(++$counter == $results) {
$resultid = $conn->query("DELETE FROM `commentor`");
}
//ELSE JUST DELETE HIS/HER COMMENTDETAILS, LET HIS/HER INFO REMAIN
else{
$resultid = $conn->query("DELETE FROM `simplecomments` WHERE id=".$value);
}
}
}
}
但是代码不起作用。我收到一个错误:
警告:mysql_num_rows() 期望参数 1 是资源 [..]...
【问题讨论】:
-
请发布您获得的结果以及您期望获得的结果
-
@BrianDewhirst 我得到一个错误..“警告:mysql_num_rows() 期望参数 1 是资源,”..我在最后两段中的问题中说明了我想要它的方式..
-
首先将
mysql_num_rows更改为mysqli_num_rows,然后重试并检查mysqli_error($conn)查询中的错误。 -
@MAA ...我为您提供了解决方案,但现在我对逻辑感到困惑,尤其是
(++$counter == $results)。 $RES 是否被错误地放在 $result 中?请显示一些行来说明您的示例。您是否只想删除评论者 cmets 的最新评论?并且只删除only 一条评论的评论者?