簡體   English   中英

如何使用mysqli php從多個表中輸出所有數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM