PHP 数据库交互优化,根据传参查询

接上文
修改以下内容

将查询的 uid 改为 username,同时在 user 和 message 两张表中查询

$sql = "select m.id,u.username,m.title,m.content from user u,message m where u.id=m.uid;"

根据 message 中的 id 查询,形式为

http://127.0.0.1/mysql.php?id=
$id=$_REQUEST['id'];
$sql = "select m.id,u.username,m.title,m.content from user u,message m where u.id=m.uid and m.id={$id} ;";

为防止出现未传 id 是报错,可为 $id 设置默认值

$id=isset($_REQUEST['id'])?$_REQUEST['id']:1;
// 如果获取了上传的参数即使用获取的参数,否则 $id 默认为 1
$sql = "select m.id,u.username,m.title,m.content from user u,message m where u.id=m.uid and m.id={$id} ;";

源码

<?php
    $db_host="127.0.0.1"; //或 localhost
    $de_user="root";
    $db_pass="root";
    $db_name="bbs";
    $link = @mysqli_connect($db_host,$de_user,$db_pass,$db_name);
	// 防止报错加 @
	if(!$link){
        $failed = "[".mysqli_connect_errno()."]".mysqli_connect_error();
        exit($failed);
        //连接失败直接报错退出,不执行后续代码
    }else{
        $id=isset($_REQUEST['id'])?$_REQUEST['id']:1;
        // 如果获取了上传的参数即使用获取的参数,否则 $id 默认为 1
        $sql = "select m.id,u.username,m.title,m.content from user u,message m where u.id=m.uid and m.id={$id} ;";
        // 定义数据库查询语句

        $results = mysqli_query($link,$sql);
        // 返回结果对象集
        
        if(!$results){
        // 如果获取失败
        echo "[".mysqli_errno($link)."]".mysqli_error($link);
        }

        echo"<table border=1>";

        echo"<tr><td>id</td><td>name</td><td>title</td><td>content</td></tr>";
        //  每条数据包含 id、uid、title、content 四项

        while($result = mysqli_fetch_assoc($results)){
        // 在查询的对象集中依次提取每条数
        
        echo "<tr>";
        // 每次循环(每条留言)建立一行
        
        foreach($result as $key => $value){
            echo "<td>";
            echo $value;
            echo "</td>";
        }
        echo "</tr>";
    }
    echo"</table>";
    }
    mysqli_close($link);
    ?>

未传参效果

image-20231025102913709
传参效果
image-20231025102900216

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gjl_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值