PHP - 使用另一个表

时间:2016-05-28 09:12:06

标签: php mysql database sql-insert

我在3个文件中制作了2个表单:loginMHS.phpinputPerwalian.phpinsertMataKuliah.php

我在数据库中有4个表:mahasiswamatakuliahkelasmahasiswa_kelas

mahasiswa表包含以下字段:

nrp | nama | pass | jatah_sks | foto_profil

matakuliah表包含以下字段:

kode_mk | nama | jumlah_sks | deskripsi

kelas表包含以下字段:

kode_kelas | kode_mk | kode_periode | nama_kelas

mahasiswa_kelas表包含以下字段:

nrp | kode_kelas

首先,loginMHS.php出现了。它有一个表单,其输入存储在var $nrp(来自mahasiswa表)中。登录后,inputPerwalian.php出现了。它也有一个表单,其输入存储在var $kodeMK(来自matakuliah表)& $namaKelas(来自kelas表)。然后,输入将被插入表mahasiswa_kelas

这是我的代码(输入无法存储到DB,但没有显示错误):

$sql = "select kode_kelas from kelas inner join mahasiswa_kelas"
       . " on kelas.kode_kelas = mahasiswa_kelas.kode_kelas"
       . " where nama_kelas=" . $namaKelas;
$result = mysqli_query($link, $sql);

$sql2 = "insert into mahasiswa_kelas (nrp, kode_kelas)"
        . " values ($nrp, $result)";
$result2 = mysqli_query($link, $sql2);
$row2 = mysqli_fetch_array($result2);

我不知道如何插入它,而输入的数据来自另一个表。因为,据我所知,我不能在插入查询中使用内连接。怎么解决?请解释一下你的答案。感谢

3 个答案:

答案 0 :(得分:1)

$result会返回一个对象,因此您无法插入mysqli_fetch_row()作为值。请查看他们如何使用mysqli_fetch_row在手册中处理它。这应该解决您的问题

更新: 不确定你的意思是'使用'但我想不是。 。 。继续阅读。您需要从if ($result = mysqli_query($link, $query)) { /* fetch associative array */ while ($row = mysqli_fetch_row($result)) { printf ("%s (%s)\n", $row[0], $row[1]); } free result set */ mysqli_free_result($result); }` 解析数组。看看

mysqli_query()

更新2: 不确定我是否应该为你编写代码但是你去了。如上所述,mysqli_fetch_row()将$ result作为对象返回。 $kode_kelas_value将$ result作为数组返回。从正确的数组索引中获取值并分配给变量$sql = "select kode_kelas from kelas inner join mahasiswa_kelas" . " on kelas.kode_kelas = mahasiswa_kelas.kode_kelas" . " where nama_kelas=" . $namaKelas; if ($result = mysqli_query($link, $sql)) { while ($row = mysqli_fetch_row($result)) { $kode_kelas_value = $row[0]; } /*free result set */ mysqli_free_result($result); }` $sql2 = "insert into mahasiswa_kelas (nrp, kode_kelas)" . " values ($nrp, $kode_kelas_value)"; $result2 = mysqli_query($link, $sql2); $row2 = mysqli_fetch_array($result2); 。使用$ sql2查询将该变量插入到数据库中。

{{1}}

答案 1 :(得分:0)

您应该使用连接查询获取nrp,kode_kelas值。如果您完美地获得了这些值,那么您只需知道就可以插入。有任何疑问都会问我。

答案 2 :(得分:0)

首先,您可以从loginMHS.php获取nrp值。您必须将该nrp值传递给inputPerwalian.php。在inputPerwalian.php中,您可以获得kodemk的值。如果您提交该表格,您将获得2个重要的必需数据,即nrp和kodemk。现在你会有nrp和kodemk。

现在你必须使用nrp,kode_kelas插入mahasiswa_kelas。你已经有了nrp,但你没有kode_kelas。为了获得kode_kelas值,你必须通过select查询从kelas表中选择kode_kelas数据。

"SELECT kode_kelas FROM kelas where kode_mk = kodemk "

通过使用此查询,您可以获得kode_kelas值。

现在您可以在mahasiswa_kelas中插入nrp和kode_kelas值。

希望它会有所帮助。