我想向参加课程的人展示内容。
我现在显示的是课程成员的姓名和电子邮件。
这样,我想显示数据库中不同数据库表中的课程。
在表cursist
中,我具有以下内容:
id INT(4)
naam VARCHAR(255)
电子邮件VARCHAR(255)
对于cursus
表,我有以下内容:
cid INT(4)
cursus VARCHAR(255)
我现在有此代码
<?php
$sql = "SELECT * FROM cursist";
$res = $db->query($sql);
if ($res->num_rows > 0) {
while($row = $res->fetch_assoc()) {
echo "<tr><td>" .$row["cursus"]. "</td><td>" . "<a href=\"editcursus.php?cid=$row[cid]\">Wijzig</a>" . "</td></tr>";
}
} else {
echo "0 Resultaten gevonden";
}
$db->close();
?>
我尝试使用内连接,但尝试时无法使用,如果有人可以帮助我解决此问题,我将很乐意。
问题是,如何做到这一点,所以来自另一个数据库的过程 该表格显示在我网页上的SAME HTML表单中。
亲切的问候, 马克。
答案 0 :(得分:2)
看看SQL Joins可能对您有帮助。
关于您的主要问题,SQL查询应该可以工作。 select *和内部联接在大多数情况下不起作用,因为您必须从数据库中指定所需的字段:
SELECT CURSIST.id,
CURSIST.naam,
CURSIST.email,
CURSUS.cursus
FROM CURSIST
INNER JOIN CURSUS
ON CURSIST.id=CURSUS.cid;
我没有看到整个问题/需要的东西,但我想您的数据库布局可能缺少表。
如果我认为正确,那么您有两个下表:
CURSIST(id,naam,email)
CURSUS(id,cursus)
一个诅咒者可能有多个诅咒,而一个诅咒可能有多个诅咒。
因此,您应该在诅咒和诅咒之间建立一张桌子。如果为此创建表,则可以解决这两者之间的N:M解决方案。 DEELNEMERS(cursist_id,cursus_id)
然后查询将是:
SELECT CURSIST.id,
CURSIST.naam,
CURSIST.email,
CURSUS.cursus
FROM CURSIST
INNER JOIN DEELNEMERS
ON CURSIST.id=DEELNEMERS.cursist_id;
INNER JOIN CURSUS
ON DEELNEMERS.cursus_id=CURSUS.id;
有关联接的有用链接:
@Update:@Mark_Ed我曾经评论过您的代码,希望对您有所帮助
编辑方法:
<?php
$sql = "SELECT CURSIST.id,
CURSIST.naam,
CURSIST.email,
CURSUS.cursus,
CURSUS.cid
FROM CURSIST
INNER JOIN CURSUS
ON CURSIST.id=CURSUS.cid;";
$res = $db->query($sql);
// $res contains the result of the sql-query at this point.
if ($res->num_rows > 0) {
// if the rows got returned from sql, this block is executes.
while($row = $res->fetch_assoc()) {
// while the $row contains something this block is exectued.
/** the Object $row[] contains the "fields" from the sql query.
/ for example a $row["naam"] would return the name from the cursist
/ here you take the name of the cursus.
**/
echo "<tr><td>Cursus: " .$row["cursus"]. "</td><td>Cursist Naam: " .$row["naam"]. "</td><td>" . "<a
href=\"editcursus.php?cid=$row[cid]\">Wijzig</a>" . "</td>
</tr>";
}
} else {
echo "0 Resultaten gevonden";
}
$db->close();
?>