[英]How to output all data from multiple tables using mysqli php
大多數變量將在我的語言中對此表示抱歉。 還要記住,我對 php/mysql 知之甚少,因為即使我的學校老師也不知道它是什么。
在我的數據庫中有 4 個表。 表只有主鍵。 這些表沒有任何外鍵或對其他表的引用。 這是因為在我的學校項目中,我們被告知不要添加外鍵和引用。 這意味着我不能/不知道如何使用JOIN
。 目前我正在嘗試輸出 4 個表中的所有數據,並使用 html/css 將它們輸出為 1。
我的主要問題是我不知道如何從不同的行輸出數據。
我曾嘗試使用mysqli_data_seek
用我的counter($no)
選擇每一行,但似乎我使用它錯誤或它不應該這樣做。 我也嘗試過使用mysqli_fetch_assoc
但我仍然得到相同的輸出。
我有一個到我的數據庫的連接
這是mysqli_data_seek
的代碼
<?php
$row = mysqli_query($connection, "SELECT Kod_Barang, Kod_Rak, Harga, Tarikh_Jual from stok");
$no = 0;
if (mysqli_num_rows($row) > 0) {
while ($stok = mysqli_fetch_assoc($row)) {
$stok = mysqli_query($connection, "SELECT Kod_Barang, Kod_Rak, Harga, Tarikh_Jual from stok");
$datastok = mysqli_data_seek($stok, $no);
//get data from "barang' table
$barang = mysqli_query($connection, "SELECT Nama_Barang, no_Barang from barang");
$databarang = mysqli_data_seek($barang, $no);
//get data from "lokasi"
$lokasi = mysqli_query($connection, "SELECT Jenis_Barang from lokasi");
$datalokasi = mysqli_data_seek($lokasi, $no);
//get data from "tarikh" table
$tarikh = mysqli_query($connection, "SELECT Tarikh_Beli from tarikh");
$datatarikh = mysqli_data_seek($tarikh, $no);
$no++;
然后在此之后我將有一個輸出連接到一個已經制作的表(這仍然在while循環中)
echo '<tr>';
echo '<td>'.$no.' </td>';
echo '<td>'.$datastok.'</td>';
echo '<td>'.$databarang.'</td>';
echo '<td>'.$datalokasi.'</td>';
echo '<td>'.$datastok.'</td>';
echo '<tr>';
這是帶有mysqli_fetch_assoc
的代碼
<?php
$rowstok = mysqli_query($connection, "SELECT Kod_Barang, Kod_Rak, Harga, Tarikh_Jual from stok");
$no = 0;
if (mysqli_num_rows($rowstok)> 0) {
while ($stok = mysqli_fetch_assoc($rowstok)) {
$stok = mysqli_query($connection, "SELECT Kod_Barang, Kod_Rak, Harga, Tarikh_Jual from stok");
$datastok = mysqli_fetch_assoc($stok);
//get data from "barang" table
$barang = mysqli_query($connection, "SELECT Nama_Barang, Bil_Barang from barang");
$databarang = mysqli_fetch_assoc($barang);
//get data from "lokasi" table
$lokasi = mysqli_query($connection, "SELECT Jenis_Barang from lokasi");
$datalokasi = mysqli_fetch_assoc($lokasi);
//get data from "tarikh" table
$tarikh = mysqli_query($connection, "SELECT Tarikh_Beli from tarikh");
$datatarikh = mysqli_fetch_assoc($tarikh);
$no++;
再次這里是我的輸出表
//output table
echo '<tr>';
echo '<td>'.$no.' </td>';
echo '<td>'.$datastok['Kod_Barang'].'</td>';
echo '<td>'.$databarang['Nama_Barang'].'</td>';
echo '<td>'.$datalokasi['Jenis_Barang'].'</td>';
echo '<td>'.$datastok['Harga'].'</td>';
echo '<tr>';
現在,輸出只是根據行數多次顯示第一行數據。 而且我的counter($no)
增加了 2 (1,3,5,7,....) 不像預期的那樣 1 我試圖讓它成為每一行數據。
感謝@ADyson,我得到了答案。 我只是將我的長代碼行更改為 JOIN
$data = mysqli_query($connection , "SELECT *
FROM stok
INNER JOIN barang
ON stok.Kod_Barang=barang.Kod_Barang
INNER JOIN lokasi
ON stok.Kod_Rak=lokasi.Kod_Rak
INNER JOIN tarikh
ON barang.Nama_Barang=tarikh.Nama_Barang");
再次為非英語屬性感到抱歉。
這是我從另一個問題SQL Inner join more than two tables中學到的 JOIN
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.