繁体   English   中英

内部加入多个表,但 mysql_query 不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM