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
相关产品推荐
相关产品推荐

