小黑帽子 2024-03-14 15:26 采纳率: 45.5%
浏览 15
已结题

PHP单表查询怎么改成关联表查询

之前单表查询是这么写的:


<?php
 $sql = PagingSql( "tb_user", "    order by gjzt asc, endDate asc, id desc", $page, 100, "clue_list_jc.php?" . $getpage . 'uname=' . $umane . '&id=' . $kfid . '&' );
      $rs = mysql_query( $sql[ sql ] );
      $a = 0;
      while ( $rst = mysql_fetch_array( $rs ) ) {
        $a = $a + 1;
        ?>
      <tr>
        <td style="font-size: 16px;"><?php echo $rst[ id ]; ?></td>
        <td style="font-size: 16px;"><?php echo $rst[ name]; ?></td>
        <td style="font-size: 16px;"><?php echo $rst[ status]; ?></td> 
      <?php } ?>


有翻页
上面的100,是100条数据翻页的
现在要加入一个表tb_clue 的state=0的数据,tb_user.user=tb_clue.email;除了输出上面的内容,还要输出tb_clue的字段bh,id;tb_user表的id和tb_clue表的id值是不一样的,都需要输出出来保留之前的翻页功能。

php版本很低5.2

  • 写回答

22条回答 默认 最新

  • 社区专家-Monster-XH 2024-03-14 17:03
    关注
    获得0.30元问题酬金

    用JOIN操作来连接tb_user和tb_clue

    <?php
    // 构建带有JOIN的SQL查询
    $sql = "SELECT tb_user.*, tb_clue.bh, tb_clue.id AS clue_id 
            FROM tb_user 
            JOIN tb_clue ON tb_user.user = tb_clue.email 
            WHERE tb_clue.state = 0 
            ORDER BY tb_user.gjzt ASC, tb_user.endDate ASC, tb_user.id DESC";
    
    // 为翻页添加LIMIT子句(这里假设$page是当前页,每页显示100条记录)
    $offset = ($page - 1) * 100;
    $sql .= " LIMIT $offset, 100";
    
    // 查询字符串附加到分页链接
    $pageUrl = "clue_list_jc.php?" . $getpage . 'uname=' . $umane . '&id=' . $kfid . '&';
    
    // 执行查询
    $rs = mysql_query($sql);
    $a = 0;
    while ($rst = mysql_fetch_array($rs)) {
        $a = $a + 1;
        ?>
        <tr>
            <td style="font-size: 16px;"><?php echo $rst['id']; ?></td>
            <td style="font-size: 16px;"><?php echo $rst['name']; ?></td>
            <td style="font-size: 16px;"><?php echo $rst['status']; ?></td>
            <td style="font-size: 16px;"><?php echo $rst['bh']; ?></td> <!-- tb_clue的bh -->
            <td style="font-size: 16px;"><?php echo $rst['clue_id']; ?></td> <!-- tb_clue的id -->
        <?php
    }
    ?>
    
    
    
    
    评论

报告相同问题?

问题事件

  • 系统已结题 3月22日
  • 修改了问题 3月14日
  • 修改了问题 3月14日
  • 修改了问题 3月14日
  • 展开全部