MySQL + PHP - 根据以前的选择结果选择信息

时间:2012-04-30 21:39:52

标签: php mysql select

我正在进行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?

3 个答案:

答案 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']。