2017-12-10 1 views
0

の結果をエコーすることができるように、複数のテーブルの情報を一度にエコーする簡単な方法を見つけようとしています。私はすべての私の髪を引っ張っていないと言いたいですが、私は持っています。ここで複数の情報をMySQLIを使って取得し、過去数時間の間に

はここCUSTOMER

$tid = $_SESSION['user_id']; // "id" is 1 for example 

$query = "SELECT * FROM `CUSTOMER` WHERE user_id = {$tid}"; 
$results = mysqli_query($dbconnection, $query); 
while ($row = mysqli_fetch_array($results)) { 
echo $row['user_id'] . "<br><br>"; 
echo $row['c_fname'] . "<br>"; 
echo $row['c_sname'] . "<br>"; 
}; 

から、次のフィールドを取得するための1つのmysqliのクエリがどのように私ができるSALE

$query = "SELECT * FROM `SALE` WHERE user_id = {$tid}"; 
$results = mysqli_query($dbconnection, $query); 
while ($row = mysqli_fetch_array($results)) { 
echo $row['s_date'] . "<br>"; 
echo $row['s_total'] . "<br>"; 
}; 

から、次のフィールドを取得するために別のmysqliのクエリは、誰かが、おそらく私を示すことができたですこれら両方のテーブルを1つのクエリで取得して、両方のテーブル情報を別々にエコーするのではなく同時にエコーすることができます。私はそれがどのように行われているのか騒ぎません。目的をエコーするために両方のテーブルからすべてが得られる限り、それは良いことです。

答えて

0

に参加。

SELECT column_name(s) 
FROM table1 
LEFT JOIN table2 ON table1.column_name = table2.column_name; 

これはあなたのコードです。

$query = "SELECT * FROM `CUSTOMER` LEFT JOIN `SALE` ON `SALE`.user_id=`CUSTOMER`.user_id WHERE `SALE`.user_id={$tid}"; 
$results = mysqli_query($dbconnection, $query); 
while ($row = mysqli_fetch_array($results)) { 
    echo $row['user_id'] . "<br><br>"; 
    echo $row['c_fname'] . "<br>"; 
    echo $row['c_sname'] . "<br>"; 
    echo $row['s_date'] . "<br>"; 
    echo $row['s_total'] . "<br>"; 
} 

詳細情報については、これを読んで

https://www.w3schools.com/sql/sql_join_left.asp 私はこのことができます願っています。

EDITED

これはあなたのコードでは3つのテーブル、

SELECT column_name(s) 
FROM table1 
LEFT JOIN table2 ON table1.column_name = table2.column_name; 
LEFT JOIN table3 ON table1.column_name = table3.column_name; 

に参加するためです。

SELECT * FROM `CUSTOMER` 
LEFT JOIN `SALE` ON `CUSTOMER`.user_id = `SALE`.user_id 
LEFT JOIN `PRODUCTS` ON `CUSTOMER`.user_id = `PRODUCTS`.user_id 
WHERE `SALE`.user_id={$tid}; 

変数として。

$query = "SELECT * FROM `CUSTOMER` LEFT JOIN `SALE` ON `CUSTOMER`.user_id = `SALE`.user_id LEFT JOIN `PRODUCTS` ON `CUSTOMER`.user_id = `PRODUCTS`.user_id WHERE `SALE`.user_id={$tid}"; 
+0

あなたのコードは、私に白いページを提供しているようです。 – UndefinedUsername

+0

ああ、 '$ query'変数行で'; 'を忘れました。それを試して、他の問題があるかどうか教えてください。 –

+0

でも、あなたはSomnath Sinhaの提案のような結果を出すようには見えません。 – UndefinedUsername

0

次のように、テーブルを結合して期待される結果を得ることができます。

$query = "SELECT c.user_id, c.c_fname, c.c_sname, s.s_date, s.s_total FROM `CUSTOMER` AS c INNER JOIN `SALE` AS s ON c.user_id = s.user_id WHERE c.user_id = {$tid}"; 

あなたはこのようLEFT JOINを使用することによってそれを行うことができます3つのテーブルの例

$query = "SELECT * 
FROM `CUSTOMER` AS c 
INNER JOIN `SALE` AS s ON c.user_id = s.user_id 
INNER JOIN `PRODUCTS` AS p ON p.product_id = s.product_id 
WHERE c.user_id = {$tid}"; 
+0

あなたのコードは、特に、テーブル内の要素をターゲットにしているようだウル問題を解決するのに役立ちます。私はselect *を探しています。 – UndefinedUsername

+0

*を使用することもできますが、私は単なる例です –

+0

*を使用すると、あなたの作品は完全に動作しますが、テーブルを追加するにはどうすればいいですか? – UndefinedUsername

0

次のコードを使用することができ、uは

$query = "SELECT C.*,S.* FROM CUSTOMER C,SALES S 
WHERE C.user_id={$tid} 
and C.user_id=S.user_id; 
while ($row = mysqli_fetch_array($results)) { 
echo $row['C.user_id'] . "<br><br>"; 
echo $row['C.c_fname'] . "<br>"; 
echo $row['C.c_sname'] . "<br>"; 
echo $row['S.s_date'] . "<br>"; 
echo $row['S.s_total'] . "<br>"; 
}; 
関連する問題