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";
(customerテーブルからの)顧客の「名前」に基づいて、 Deliveryテーブルで彼の「履歴」を取得する必要があります。
だから、私は彼を印刷します:名前+住所+歴史
最善の解決策は何でしょうか?
@@@@@@@@@ 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";
}
私の現在の状況は次のとおりです。情報を取得する必要がある3つのテーブルがあります。
表:顧客、ユーザー、履歴。
顧客からはたくさんの顧客が必要です。
配達から私は履歴が必要です(顧客の量に基づく)。
ユーザーからは名前が必要です(実際にはほとんどニックネームです)。
これらの3つのテーブルには「Name」列があり、列名を変更できないため、そのINNER JOINステートメントを使用してCUSTOMERSまたはDELIVERYではなくUSERSから名前を取得するにはどうすればよいですか?