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

标签 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";

根据客户的“姓名”(来自客户表),我需要在送货时获取他的“历史记录”表。

所以,我将打印他的:姓名+地址+历史记录

最好的解决方案是什么?

@@@@@@@@@已解决@@@@@@@@@@@

$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/

相关文章:

php - mySQL 确定结果数组的第一个元素是否等于给定值

python - 使用 Odoo 从 Mysql 填充选择字段

php - $_GET 未传递给 SELECT 查询

ruby - 如何使用 Ruby 集合函数合并空行中的值?

php - 在 iOS -> php -> mySQL 之间安全地传输数据

MySQL 同一单元上的多个 JOINS

php - 区分盗链与现场用户

php - SQL查询如何从多行返回数据

php - "Do not Access Superglobal $_REQUEST Array Directly."Netbeans 8.0 PHP

php - Dropbox XAMPP 和 MySQL