Php 如何获取数据并与表变量匹配?

Php 如何获取数据并与表变量匹配?,php,sql,Php,Sql,我遇到了一个独特的问题。我有两个表,一个用于客户端,另一个用于用户。第三个表是注释表。因此,当一条评论被添加到第三个表中时,发布人员id和评论所涉及的组织经理的id被存储。现在,当我必须显示注释时,我不确定如何获得适当的名称,因为它们存储在两个不同的表中 有什么办法吗 我设法创建的一些代码: $query="SELECT v_comments.v_comment_id, d_names.d_name, v_comments.visit_reply, v_comments.just_d

我遇到了一个独特的问题。我有两个表,一个用于客户端,另一个用于用户。第三个表是注释表。因此,当一条评论被添加到第三个表中时,发布人员id和评论所涉及的组织经理的id被存储。现在,当我必须显示注释时,我不确定如何获得适当的名称,因为它们存储在两个不同的表中

有什么办法吗

我设法创建的一些代码:

   $query="SELECT v_comments.v_comment_id, d_names.d_name,
   v_comments.visit_reply, v_comments.just_date FROM v_comments 
   LEFT JOIN d_names ON v_comments.d_id = d_names.d_id 
   WHERE v_id = '$vid' and v_comments.s_id='$sid' ORDER BY v_comments.id DESC";  
   $result=mysql_query($query);

   $num=mysql_numrows($result);

   mysql_close();

  echo "";

   $i=0;
   while ($i < $num) {

$reply=mysql_result($result,$i,"v_reply");
$replyid=mysql_result($result,$i,"v_comment_id");
$dname = mysql_result($result, $i, "d_name");


echo "";

echo "";

 $i++;
  }

您可以在comments表中设置一个名为id的字段

然后在插入注释时,在前面添加一个与用户类型对应的字母。例如:

客户:c5

用户:u5


然后,在显示注释时,只需将字母和数字分开,并根据字母搜索相应的表。

是否只需向另一个表添加联接,然后选择“其他名称”字段

如果另一个表被称为s_names,这应该是可行的,我不得不猜测:

SELECT v_comments.v_comment_id, d_names.d_name, s_names.s_name,
       v_comments.visit_reply, v_comments.just_date
FROM v_comments
LEFT JOIN d_names ON v_comments.d_id = d_names.d_id 
LEFT JOIN s_names ON v_comments.s_id = s_names.s_id 
WHERE v_id = '$vid' and s_id='$sid' ORDER BY v_comments.id DESC;

这基本上就是联接操作在数据库中所做的。 假设您有一个用于客户端的表,其中有一个主键'ClientId',一个字符串属性'Name',可能还有一些在这个问题中不重要的其他信息

类似地,您还有另一个“Managers”表,它具有主键“ManagerId”和他/她的name属性“name”

您还有一个Comments表,其中有您描述的“ClientId”、“ManagerId”和“Comment”

现在,要显示与注释相关的实际名称,可以使用以下SQL

SELECT Clients.Name, Managers.Name, Comments.Comment 
FROM Comments
INNER JOIN Clients
    ON Clients.ClientId = Comments.ClientId
INNER JOIN Managers
    ON Managers.ManagerId = Comments.ManagerId

资本化有关系吗?嘿,我试过。。。它告诉我mysql_num_rows期望参数1是资源,布尔给定错误,我需要WHERE子句吗?嘿,你的显示了结果,但我是否仍然有相同的问题。我正在拉取这些变量中的数据,所以现在如果manager的名称在managers中,而client的名称在client中,那么如何构造变量,使一个$variable显示适当的名称。SQL关键字SELECT、FROM的大小写实际上并不重要,但是,最好用所有大写字母书写它们。对于表名,这取决于您的系统设置,但最好是区分大小写并在项目中保持一致。我的查询实际上输出所有注释。我认为@joelhardi已经给出了一个很好的例子,说明了如何利用变量来选择特定的经理和客户。要提取结果,您只需使用Clients.Name和Managers.Name中的值即可。您的显示了结果,但我是否仍然有相同的问题。我正在拉取这些变量中的数据,所以现在如果manager的名称在managers中,client的名称在clients中,那么我如何构造变量,以便一个$variable将显示适当的名称。