You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何将单列多行查询结果赋值为$sub1、$sub2这类变量

解决方案

首先先修正你现有代码里的语法错误:

  • while($subjects=$r->fetch_assoc(){ 缺少闭合括号,正确写法是 while($subjects=$r->fetch_assoc()){
  • 循环结尾的 }; 应该改为 }

接下来实现把2019年的科目逐一赋值为$sub1、$sub2这类变量的需求,你可以借助PHP的可变变量特性,搭配计数器来动态生成变量名,代码示例如下:

$year = 2019;
$sql = "SELECT * FROM `Regular Subjects` where Year='$year'";
$r = $con->query($sql);

if($r->num_rows > 0){
    $counter = 1; // 初始化计数器,用来生成变量序号
    while($subjects = $r->fetch_assoc()){
        $current_subject = $subjects["Subject"];
        // 动态创建$sub1、$sub2...这类变量并赋值
        ${"sub" . $counter} = $current_subject;
        $counter++; // 计数器自增,对应下一个变量序号
    }

    // 可以直接调用生成的变量,比如输出测试
    echo $sub1 . "<br>";
    echo $sub2 . "<br>";
    // 后续科目对应$sub3、$sub4...以此类推
}

额外建议

如果科目数量不确定,更推荐用数组存储科目列表,后续使用会更灵活,示例代码:

$subjects_array = [];
if($r->num_rows > 0){
    while($subjects = $r->fetch_assoc()){
        $subjects_array[] = $subjects["Subject"];
    }
    // 访问第一个科目用$subjects_array[0],第二个用$subjects_array[1],以此类推
}

内容的提问来源于stack exchange,提问作者user14786650

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 09:10:56