我正在进行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";
根据我客户的“姓名”(来自客户表),我需要在投放中获取“历史记录”表
所以,我会打印他的名字:姓名+地址+历史
什么是最好的解决方案?
@@@@@@@@@ SOLVED @@@@@@@@@@
$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";
}
我目前的情况是:我有三张桌子需要获取信息。
表:客户,用户,历史。
客户需要我的客户。
从交付我需要历史(基于客户数量)。
来自用户我需要名字(实际上它几乎是一个昵称)。
由于这三个表都有一个'Name'列,我不能更改列名,如何使用INNER JOIN语句从USERS而不是CUSTOMERS或DELIVERY获取Name?
答案 0 :(得分:1)
听起来你只想在名字上用这两个表进行INNER JOIN?
答案 1 :(得分:1)
在第一个表上进行连接以一次获取所需的所有数据:
$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'];
}
这使您无需第二次查询。
答案 2 :(得分:1)
Darkeden,你可以做SELECT客户。*或者你可以选择SELECT customers.name作为'CName'等。使用这样的别名,你可以稍后回显$ row ['CName']。