за последние несколько часов я пытался найти простой метод эхо-информации while из нескольких таблиц сразу. Я бы хотел сказать, что я не вытащил все мои волосы, но у меня есть.
Вот один запрос 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>";
};
Вот еще один запрос 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>";
};
Может кто-нибудь, возможно, покажет мне, как я могу получить обе эти таблицы в одном запросе, чтобы можно было повторять эхо-данные обеих таблиц одновременно, а не отдельно. Я не суетился, как это делается, до тех пор, пока он получает все из обеих таблиц для эхо-цели, это хорошо.
Вы можете сделать это, используя LEFT JOIN
как это.
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. Надеюсь, это поможет.
РЕДАКТИРОВАНИЕ
Это для объединения трех таблиц,
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}";
Вы можете использовать следующий код и помочь решить проблему Ur
$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>";
};
Вы можете просто присоединиться к таблицам, чтобы получить ожидаемый результат, как показано ниже.
$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}";
Пример подключения к 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}";
;
в$query
переменной$query
. попробуйте и скажите мне, если есть какие-либо другие проблемы.