我是PHP / MySQl的新手,所以我想要一些关于这些东西是如何工作的指南,很难谷歌这个......
所以,我试着学习php / mysql,我即将与客户一起写一个小页面,每个客户都可以有一些项目。
所以,我的数据库设置如下(猜测这需要大量修改): - 客户(身份证,姓名,描述) - 项目(id,名称,描述) - 用户(id,名称)
<?php
if(isset($_GET['id'])) {
$query = "SELECT * FROM customers WHERE id = '". $_GET['id']."'";
$results = mysql_query($query);
while($row = mysql_fetch_array( $results ))
{
echo "<h3>" . $row['name'] . "</h3>";
echo "<br />";
$query = "SELECT * FROM projects ORDER by name ASC";
$results = mysql_query($query);
echo "<table>
<tbody>";
while($row = mysql_fetch_array( $results ))
{
echo "<tr>
<td><a href='main.php?id=" . $row['id'] . "'>" . $row['name'] . "</a></td>
<td>" . $row['description'] . "</td>
</tr>";
}
echo "</tbody>
</table>";
}
} else {
$query = "SELECT * FROM customers ORDER by name ASC";
$results = mysql_query($query);
echo "<table>
<thead>
<tr>
<th width='20%'>Customer</th>
<th width='80%'>Description</th>
</tr>
</thead>
<tbody>";
while($row = mysql_fetch_array( $results ))
{
echo "<tr>
<td><a href='main.php?id=" . $row['id'] . "'>" . $row['name'] . "</a></td>
<td>" . $row['description'] . "</td>
</tr>";
}
echo "</tbody>
</table>";
}
?>
正如你可以看到它遗漏了一些重要的东西,例如,如果我选择客户A或B我收到相同的项目,我不知道如何分离项目并将它们“绑定”给某个客户。我的目的是将用户“绑定”给项目和客户。
赞赏任何正确方向的提示!
答案 0 :(得分:0)
您需要另一个具有密钥的表(customers.id,projects.id)这样您就可以将每个客户链接到他们自己的项目,并且您需要根据该表的ID来选择该表中的数据。顾客。您也可能需要客户/用户表,以将用户ID链接到客户ID。
为清晰起见编辑:新表应如下所示:
CREATE TABLE customer_projects (
customer_id INT NOT NULL,
project_id INT NOT NULL,
PRIMARY KEY (customer_id, project_id));
然后,您将每个客户分配到此表中的项目。要获取详细信息(客户名称,项目名称),您需要与其他表格“加入”,例如:
SELECT customers.*, projects.* FROM customer_projects
LEFT JOIN customers ON customers.id = customer_projects.customer_id
LEFT JOIN projects ON projects.id = customer_projects.project_id
WHERE customer_projects.customer_id = '1' // 1 is an example of a customer id.
答案 1 :(得分:0)
您可以在选择查询中添加INNER JOIN
,如下所示:
"SELECT * FROM customers c INNER JOIN projects p ON p.name = c.name WHERE c.id = '". $_GET['id']."'";
在这里,我认为你在<{1}}表格中的已经一个名称列与customer
中的名称列相同。
答案 2 :(得分:0)
您需要添加一些表格。 首先是一个表,表示从客户到项目的关系。这就像
客户ID |项目编号
1 | 1
2 | 3
....
客户和用户也需要相同。
现在您可以参考此表来获取所需信息并执行必要的连接以获取数据。