好 啊。这就是我想要完成的。
我正在保存对窗体文本区域的更改,以便可以查看对该文本区域所做的所有更改。就像一连串的评论。我把数据放进了两张表。我需要帮助把它拿出来。
我有两个表“worklog”和“worklognotes”中的数据。
worklog是来自一个名为$spec的文本区域表单的一系列工单
worklognotes是对textarea$spec所做更改的运行列表
在worklognotes中,我将worklog中的id保存为worklog\u id,以便在进行更改时,数据将与正确的工单匹配。
我可以很好地显示工作日志中的信息。但我根本看不到工作日志中的信息。我的目标是显示来自worklognotes的数据,并在worklognotes中显示记录,其中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和worklongnotes之间存在“一对多”关系。
如果确实如此,则需要一个查询,该查询将按worklog.id“连接”行。
未经测试,应使用以下示例:

<?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的所有worklognotes,请执行以下操作:
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                       |
+-------------+---------------------------------------------------------+

关于php - 显示两个表中的数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3472293/

10-09 04:35