php - 如何使用mysqli php从多个表中输出所有数据
问题描述
大多数变量将用我的语言表示,对此感到抱歉。另外请记住,我对 php/mysql 知之甚少,因为即使我的学校老师也不知道它是什么。
在我的数据库中有 4 个表。这些表只有主键。这些表没有任何外键或对其他表的引用。这是因为在我的学校项目中,我们被告知不要添加外键和引用。这意味着我不能/不知道如何使用JOIN
. 目前我正在尝试从 4 个表中输出所有数据,并使用 html/css 将它们输出为 1。
我的主要问题是我不知道如何从不同的行输出数据。
我曾尝试使用mysqli_data_seek
my 选择每一行,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");
再次对非英语属性感到抱歉。
推荐阅读
- ssas - SSAS - 命名计算的工作日数
- python - 在日期拆分聊天日志文件(使用正则表达式)并计算每月的消息数
- r - 如何在 Pandas 中进行子集化和修改,例如 R 中的“which”?
- reactjs - 如何提交表单和添加道具的最佳方式是什么?
- jmeter - 从电子邮件中的仪表板报告跟踪执行、通过或失败的测试用例数量
- php - 无法将表单数据绑定到学说查找功能。“ORMInvalidArgumentException”
- javascript - 如何使用javascript显示来自具有数组名称属性的文本字段的输入值
- android - 使用喷气背包导航将自定义过渡动画添加到底部导航设置
- python - 使用 map_partitions 和 pd.df.to_sql 从 dask 数据帧创建 sql 表
- javascript - 如何在javascript jquery中捕获具有相同类名的不同变量中的文本