Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 请帮助我处理sql查询中的注释部分_Php_Mysql_Sql_Comments - Fatal编程技术网

Php 请帮助我处理sql查询中的注释部分

Php 请帮助我处理sql查询中的注释部分,php,mysql,sql,comments,Php,Mysql,Sql,Comments,好了,伙计们,我需要一点帮助!使用PHP和mysql,我制作了一个评论部分,用户可以在其中添加评论。首先,该页面基于ItemID并显示正确的项目。当他们添加评论时,我使用他们的用户名和ItemID,并将其作为comment.username和messageailmentID放在评论表中。因此,页面显示正确,注释部分工作良好,只是我似乎无法正确获取SQL查询。我尝试过许多变体,但都没有成功。我希望任何人在pages ItemID下发布的评论只显示该ItemID(特别是messageailmentI

好了,伙计们,我需要一点帮助!使用PHP和mysql,我制作了一个评论部分,用户可以在其中添加评论。首先,该页面基于ItemID并显示正确的项目。当他们添加评论时,我使用他们的用户名和ItemID,并将其作为comment.username和messageailmentID放在评论表中。因此,页面显示正确,注释部分工作良好,只是我似乎无法正确获取SQL查询。我尝试过许多变体,但都没有成功。我希望任何人在pages ItemID下发布的评论只显示该ItemID(特别是messageailmentID)下的评论

我的查询范围很广,但这里是我目前的查询范围:

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。感谢您的回复。然而,我在过去做过一个相同的查询,当你再次回答我的问题时,都没有用。谢谢你的回答。然而,我在过去做过同样的询问,当你再次回答我的问题时,都没有用。