我只是学习PHP,我有一个问题 我只想说,我有MySQL表" A"
Name | Job
--------|---------
Jynx | 1
Micah | 4
Nancy | 3
Turah | 1
另一张桌子" B"
JobId | JobName
-------|-----------
1 | Lawyer
2 | Architec
3 | Farmer
4 | Mage
5 | Warrior
所以据说在php中我想绘制一个表格,显示表格的内容" A",而不是在" Job"上显示数字。 colomn,它们每个都显示表格" B"中的作业名称。 最有效的方法是什么? 现在,我只是想使用
$conn = My database connect setting
$sql = "SELECT * FROM tableA ORDER BY Name";
$result = $conn->query($sql);
while($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>". $row['Name'] ."</td><td>";
$sql2 = "SELECT * FROM tableB WHERE JobId=$row['Job']";
$result2 = $conn->query($sql2);
while($row2 = mysqli_fetch_assoc($result2)) {
echo "<td>". $row2['JobName'] ."</td></tr>;
}
}
但如果有多个simillin colomn并且有多少行,那么它是否需要大量的计算过程?
有没有更有效的方法来做到这一点?
抱歉我的英文不好
感谢您的关注。
答案 0 :(得分:2)
加入绝对是去这里的方式。
SELECT a.Name, b.JobName
FROM tableA a
JOIN tableB b on (a.Job = b.JobId)
ORDER BY a.Name
答案 1 :(得分:0)
嗯,现在没时间学习JOIN并不容易,但后来我会学习它。
就目前而言,我只想改用ARRAY 所以在我绘制主表之前,我将支持表(表B)分配到关联数组
$sql = "SELECT * FROM tableB ORDER BY Id";
$result = $conn->query($sql);
while($row = mysqli_fetch_assoc($result)) {
$job[$row['JobId']] = $row['JobName'];
}
在主桌上
$sql = "SELECT * FROM tableA ORDER BY Name";
$result = $conn->query($sql);
while($row = mysqli_fetch_assoc($result)) {
echo "<tr><td>". $row['Name'] ."</td><td>". $job[$row['Job']];
}