Php 请帮助我处理sql查询中的注释部分
好了,伙计们,我需要一点帮助!使用PHP和mysql,我制作了一个评论部分,用户可以在其中添加评论。首先,该页面基于ItemID并显示正确的项目。当他们添加评论时,我使用他们的用户名和ItemID,并将其作为comment.username和messageailmentID放在评论表中。因此,页面显示正确,注释部分工作良好,只是我似乎无法正确获取SQL查询。我尝试过许多变体,但都没有成功。我希望任何人在pages ItemID下发布的评论只显示该ItemID(特别是messageailmentID)下的评论 我的查询范围很广,但这里是我目前的查询范围:Php 请帮助我处理sql查询中的注释部分,php,mysql,sql,comments,Php,Mysql,Sql,Comments,好了,伙计们,我需要一点帮助!使用PHP和mysql,我制作了一个评论部分,用户可以在其中添加评论。首先,该页面基于ItemID并显示正确的项目。当他们添加评论时,我使用他们的用户名和ItemID,并将其作为comment.username和messageailmentID放在评论表中。因此,页面显示正确,注释部分工作良好,只是我似乎无法正确获取SQL查询。我尝试过许多变体,但都没有成功。我希望任何人在pages ItemID下发布的评论只显示该ItemID(特别是messageailmentI
SELECT `comment`.messageID, `comment`.message, `comment`.username, `comment`.messageailmentID, Items.ItemID
FROM `comment`, Items
WHERE varItemID = `comment`.messageailmentID
(使用dreamweaver,varItemID基本上是$\u GET['Items.ItemID'])
编辑:例如,用户单击一个项目,将其带到itemdetails.php?ItemID=8。当他们留下评论时,它会将Items.ItemID添加到comment.messageailmentID中
表列的重要部分如下所示:
项目:项目ID
注释:CommentID、message、comment.username、messageailmentID(即页面项目ID)
varItemID不是一个列,但是$\u获取['ItemID'],这在这个查询中可能不需要,因为它是在另一个查询中完成的。您的查询正在获取所有行 你应使用:
- 用于指定表之间关系的
子句JOIN
- 一个
子句,用于指定要获取的特定项目WHERE
SELECT
comment.messageID,
comment.message,
comment.username,
comment.messageailmentID,
Items.ItemID
FROM Items
LEFT JOIN comment
ON Items.ItemID = comment.messageailmentID
WHERE Items.ItemID = 42
使用左连接意味着即使没有注释,它仍将返回一行。如果不需要,请使用内部联接。您的查询正在获取所有行 你应使用:
- 用于指定表之间关系的
子句JOIN
- 一个
子句,用于指定要获取的特定项目WHERE
SELECT
comment.messageID,
comment.message,
comment.username,
comment.messageailmentID,
Items.ItemID
FROM Items
LEFT JOIN comment
ON Items.ItemID = comment.messageailmentID
WHERE Items.ItemID = 42
使用左连接意味着即使没有注释,它仍将返回一行。如果不需要,请使用内部联接。尝试以下操作
SELECT comment.messageID, comment.message, comment.username, comment.messageailmentID, Items.ItemID
FROM comment, Items
WHERE Items.ItemID = comment.messageailmentID and Items.ItemID = ". $_GET['Items.ItemID']
试试下面的方法
SELECT comment.messageID, comment.message, comment.username, comment.messageailmentID, Items.ItemID
FROM comment, Items
WHERE Items.ItemID = comment.messageailmentID and Items.ItemID = ". $_GET['Items.ItemID']
谢谢你们帮我弄明白我自己的愚蠢!我使用的有效查询如下:
SELECT `comment`.messageID, `comment`.message, `comment`.username
, `comment`.ItemID, Items.ItemID
FROM Items
INNER JOIN `comment`
ON Items.ItemID = `comment`.ItemID
WHERE Items.ItemID = varItemID
varItemID
也是一个$\u GET['ItemID']
。谢谢你们帮我发现了自己的愚蠢!我使用的有效查询如下:
SELECT `comment`.messageID, `comment`.message, `comment`.username
, `comment`.ItemID, Items.ItemID
FROM Items
INNER JOIN `comment`
ON Items.ItemID = `comment`.ItemID
WHERE Items.ItemID = varItemID
varItemID
也是一个$\u GET['ItemID']
。感谢您的快速响应。所以我试着这样做,但我得到一个错误,说varItemID上的左连接是未知列。有什么想法吗?@micker:您的项目表中可能不存在varItemId
列。请编辑您的问题以包含表定义,如果可能,还请添加一个项目如何与数据库中的注释相关的描述(即关系中使用了哪些列)。我对我的问题进行了一点编辑,希望能澄清一点。是的,On Items.varItemID是一个$_GET['ItemID'],而不是一列。对不起!但我似乎仍然无法让连接正常工作。(我读过一些针对凡人的SQl查询,但出于某种原因,这些连接对我来说很棘手)@micker:不清楚为什么需要连接。为什么你不能直接查询评论表呢?我希望人们发表的评论只显示在特定的页面上。我不希望ItemID 6的评论显示为ItemID 8。感谢您的快速回复。所以我试着这样做,但我得到一个错误,说varItemID上的左连接是未知列。有什么想法吗?@micker:您的项目表中可能不存在varItemId
列。请编辑您的问题以包含表定义,如果可能,还请添加一个项目如何与数据库中的注释相关的描述(即关系中使用了哪些列)。我对我的问题进行了一点编辑,希望能澄清一点。是的,On Items.varItemID是一个$_GET['ItemID'],而不是一列。对不起!但我似乎仍然无法让连接正常工作。(我读过一些针对凡人的SQl查询,但出于某种原因,这些连接对我来说很棘手)@micker:不清楚为什么需要连接。为什么你不能直接查询评论表呢?我希望人们发表的评论只显示在特定的页面上。我不希望ItemID 6的注释显示为ItemID 8。感谢您的回复。然而,我在过去做过一个相同的查询,当你再次回答我的问题时,都没有用。谢谢你的回答。然而,我在过去做过同样的询问,当你再次回答我的问题时,都没有用。