繁体   English   中英

显示两个表中的数据

[英]Displaying data from two tables

好的。 这就是我想要完成的。 我正在保存对表单 textarea 的更改,以便可以查看对该 textarea 所做的所有更改。 就像一串评论。 我已经将数据放入两个表中。 我需要帮助把它弄回来。

我在“worklog”和“worklognotes”两个表中有数据。

工作日志是来自具有文本区域的表单的一系列工作订单,称为 $spec

worklognotes 是对 textarea $spec 所做更改的运行列表

在工作日志中,我将工作日志中的 id 保存为 worklog_id,以便在进行更改时,数据将与正确的工作订单相匹配。

我可以很好地显示工作日志中的信息。 但是我根本看不到工作日志中的信息。 我的目标是显示工作日志中的数据并显示工作日志中的记录 WHERE worklognotes.worklog_id = worklog.id

我希望这是有道理的。 像这样写出来有帮助。

这是我正在使用的查询语句。 谢谢你的帮助。

$connection=mysql_connect ("localhost", "foo", "bar") or die ("I cannot connect to the database.");
$db=mysql_select_db ("database", $connection) or die (mysql_error());
$query = "SELECT * FROM worklog WHERE id=$id LIMIT 0,1";
$sql_result = mysql_query($query, $connection) or die (mysql_error());

$connection2=mysql_connect ("localhost", "foo", "bar") or die ("I cannot connect to the database.");
$db=mysql_select_db ("database", $connection2) or die (mysql_error());
$query2 = "SELECT * FROM worklognotes,worklog WHERE worklognotes.worklog_id=worklog.id ORDER BY worklog_id DESC";
$sql_result2 = mysql_query($query2, $connection2) or die (mysql_error());

-- 续 -- 09-13-10

好的,这是修改后的查询

$connection = mysql_connect ("localhost", "adsites_seth", "callie") or die ("I cannot connect to the database."); $db = mysql_select_db ("adsites_cerebra", $connection) or die (mysql_error());

$query = "SELECT * FROM worklog "; $query .= "LEFT JOIN worklognotes ON worklog_id = worklognotes.worklog_id "; $query .= "WHERE worklog.id=worklognotes.worklog_id ORDER BY worklognotes.worklog_id ASC";

$sql_result = mysql_query($query, $connection) or die (mysql_error());

我在 worklognotes 表中有四个条目,所有四个条目都显示在一页上。 我只需要属于我正在查看的工作日志的一个条目,如果没有条目。 什么都不显示。

据我了解(如果我错了,请纠正我),您在工作日志和工作长笔记之间存在“一对多”关系。

如果确实如此,那么您需要一个查询,该查询将为您提供由 worklog.id 'joined' 的行。

未经测试,以下示例应该有用:

<?php
$connection = mysql_connect ("localhost", "foo", "bar") or die ("I cannot connect to the database.");
$db = mysql_select_db ("database", $connection) or die (mysql_error());

$query = "SELECT * FROM worklog ";
$query .= "LEFT JOIN worklognotes ON worklog.id = worklognotes.worklog_id ";
$query .= "WHERE worklog.id=$id ORDER BY worklognotes.worklog_id ASC";

$sql_result = mysql_query($query, $connection) or die (mysql_error());
?>

这可能会给出类似的东西:

SELECT * FROM worklog LEFT JOIN worklognotes ON worklog.id = worklognotes.worklog_id 
WHERE worklog.id=1 ORDER BY worklognotes.worknotes_id ASC;

+-------------+----------------+----------------------------------------+
| id          |  worknotes_id  | log                                    |
+-------------+----------------+----------------------------------------+
| 1           | 1              | Houses atre grate                      | 
| 1           | 2              | Houses are grate                       | 
| 1           | 3              | Houses are great                       | 
| 2           | 4              | Shop5 are smelly                       | 
| 2           | 5              | Shops are smelly                       | 
| 2           | 6              | Shopes aren't smelly                   | 
+-------------+---------------------------------------------------------+

要获取给定 worklog.id 的所有工作日志:

SELECT * FROM worklog LEFT JOIN worklognotes ON worklog.id = worklognotes.worklog_id 
WHERE worklog.id=1 AND worklog.id = 1 ORDER BY worklognotes.worknotes_id ASC;

+-------------+----------------+----------------------------------------+
| id          |  worknotes_id  | log                                    |
+-------------+----------------+----------------------------------------+
| 1           | 1              | Houses atre grate                      | 
| 1           | 2              | Houses are grate                       | 
| 1           | 3              | Houses are great                       | 
+-------------+---------------------------------------------------------+

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM