我正在做 PHP 和 MySQL 的集成。 以下代码工作正常:
<?php
include_once("conf.php");
$sql = "SELECT Name,Address FROM customers";
$rs = mysqli_query($connect,$sql) or die("can't connect to DB");
$temp = mysqli_num_rows($rs);
while($row = mysqli_fetch_array($rs))
{
$convert = mb_convert_encoding ($row['Name'],"UTF-8","gbk");
$print .= "<tr><td>".$convert."</td><td>".$row['Address']."</td><td>".$sql2."</td></tr>\n";
}
此代码正在运行,但现在我需要根据此表的结果(名称)从另一个表中选择特定信息。
所以,这将是另一个 MySQL 选择:
$sql2 = "select History from Delivery where Name="$convert";
根据客户的“姓名”(来自客户表),我需要在送货时获取他的“历史记录”表。
所以,我将打印他的:姓名+地址+历史记录
最好的解决方案是什么?
@@@@@@@@@已解决@@@@@@@@@@@
$sql = 'SELECT * FROM customers c
INNER JOIN Delivery d
ON c.Name = d.Name';
$result = mysqli_query($connect, $sql);
$temp = mysqli_num_rows($rs);
while($row = mysqli_fetch_array( $result))
{
$convert = mb_convert_encoding ($row['Name'],"UTF-8","gbk");
$print .= "<tr><td>".$convert."</td><td>".$row['Address']."</td><td>".$row['History']."</td></tr>\n";
}
我目前的情况是:我有三个表,我需要从中获取信息。
表:客户、用户、历史记录。
来自客户,我需要大量客户。
我需要来自交付的历史记录(基于客户数量)。
我需要来自用户的姓名(实际上这几乎是一个昵称)。
由于这三个表都有“名称”列,并且我无法更改列名称,因此如何使用 INNER JOIN 语句从 USERS 而不是 CUSTOMERS 或 DELIVERY 获取名称?
最佳答案
对第一个表进行联接以一次性获取您需要的所有数据:
$sql = 'SELECT * FROM customers c
INNER JOIN Delivery d
ON c.Name = d.Name';
$result = mysqli_query($connect, $sql);
while($row = mysqli_fetch_array( $result))
{
echo $row['History'] . ' ' . $row['Name'];
}
这使您无需进行第二次查询。
关于php - MySQL + PHP - 根据先前的选择结果选择信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10390953/