[英]inner joining multiple table but mysql_query is not working
<div class="article-container">
<?php
$Nama=mysqli_real_escape_string($conn,$_GET['title']);
//$sql="select * from peserta where Nama='$Nama'";
$sql = "select peserta.ID_Peserta,hakim.ID_Hakim,acara.ID_Badminton,admin.ID_Admin
from (((peserta
inner join hakim on peserta.ID_Hakim=hakim.ID_Hakim)
inner join acara on peserta.ID_Badminton=acara.ID_Badminton)
inner join admin on peserta.ID_Admin=admin.ID_Admin";
$searchresult=mysqli_query($conn,"select * from peserta where Nama='$Nama'",$sql);
$queryResults=mysqli_num_rows($searchresult);
if($queryResults>0){
while($row=mysqli_fetch_assoc($searchresult)){
echo"<div class='article-box'>
<h3>".$row['Nama']."</h3>
<p>".$row['ID_Peserta']."</p>
<p>".$row['noKP']."</p>
<p>".$row['Kelas']."</p>
<p>".$row['Keseluruhan_Markah']."</p>
<p>".$row['Ranking']."</p>
<p>".$row['ID_Hakim']."</p>
<p>".$row['ID_Badminton']."</p>
<p>".$row['ID_Admin']."</p>
</div>";
}
}else{
echo "There are no results matching your search!";
}
一直期待使用 ID 将 3 个不同的表链接到我的“peserta”表中,但出现错误:
致命错误:未捕获的类型错误:mysqli_query():参数 #3 ($result_mode) 必须是 int 类型,字符串在 D:\Other\xampp\htdocs\project\article.php:25 堆栈跟踪:#0 D:\其他\xampp\htdocs\project\article.php(25): mysqli_query(Object(mysqli), 'select * from p...', 'select peserta....') #1 {main} throw in D: \Other\xampp\htdocs\project\article.php 在第 25 行
这是我的一个学校项目,我是 php 的新手,因此我们将不胜感激
作为根据问题标题和 sql 查询的不正确结构查看我认为您正在尝试做的事情的猜测,也许以下是合适的?
<div class="article-container">
<?php
if( isset( $_GET['title'] ) ){
$sql='select
p.ID_Peserta,
p.Nama,
p.noKP,
p.Kelas,
p.Keseluruhan_Markah,
p.Ranking,
h.ID_Hakim,
a.ID_Badminton,
ad.ID_Admin
from peserta p
inner join hakim h on p.ID_Hakim=h.ID_Hakim
inner join acara a on p.ID_Badminton=a.ID_Badminton
inner join admin ad on p.ID_Admin=ad.ID_Admin
where p.Nama=?';
$stmt=$conn->prepare( $sql );
$stmt->bind_param( 's', $_GET['title'] );
$stmt->execute();
$stmt->bind_result( $idp, $nama, $nokp, $kelas, $kesmar, $rank, $idh, $idb, $ida );
while( $stmt->fetch() )printf(
'<div class="article-box">
<h3>%s</h3>
<p>%s</p>
<p>%s</p>
<p>%s</p>
<p>%s</p>
<p>%s</p>
<p>%s</p>
<p>%s</p>
<p>%s</p>
</div>',
$nama, $idp, $nokp, $kelas, $kesmar, $rank, $idh, $idb, $ida );
$stmt->free_result();
$stmt->close();
}
?>
</div>
要测试 SQL 查询是否返回结果,请尝试在 GUI 或 mySQL 命令行中运行以下命令:
select
p.ID_Peserta,
p.Nama,
p.noKP,
p.Kelas,
p.Keseluruhan_Markah,
p.Ranking,
h.ID_Hakim,
a.ID_Badminton,
ad.ID_Admin
from peserta p
inner join hakim h on p.ID_Hakim=h.ID_Hakim
inner join acara a on p.ID_Badminton=a.ID_Badminton
inner join admin ad on p.ID_Admin=ad.ID_Admin
where p.Nama="<<< SUBSTITUTE A TITLE HERE >>>"
例如:
select
p.ID_Peserta,
p.Nama,
p.noKP,
p.Kelas,
p.Keseluruhan_Markah,
p.Ranking,
h.ID_Hakim,
a.ID_Badminton,
ad.ID_Admin
from peserta p
inner join hakim h on p.ID_Hakim=h.ID_Hakim
inner join acara a on p.ID_Badminton=a.ID_Badminton
inner join admin ad on p.ID_Admin=ad.ID_Admin
where p.Nama="banana" <----- the title/$_GET['title'] value appears in your db???
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.