[英]PHP Loop - dealing with non-sequential iterations
我有以下代码-它产生一系列发送到数据库的查询:
$a = 'q';
$aa = 1;
$r = "$a$aa";
$q = 54;
while($aa <= $q){
$query .= "SELECT COUNT(". $r .") as Responses FROM tresults;";
$aa = $aa + 1;
$r = "$a$aa";
}
我遇到的问题很简单,在数据库中,这个数字不是连续的。
我有从q1
到q13
字段,然后从q14a
, q14b
, q14c
, q14d
和q14e
然后从q15
到q54
。
我已经看过continue,但这更多是为了跳过迭代,对我没有帮助。
我正在努力调整上面的代码来处理这种非顺序的情况。 欢迎任何想法和建议。
我有从
q1
到q13
字段,然后从q14a
,q14b
,q14c
,q14d
和q14e
然后从q15
到q54
。
for($i=1; $i<=54; ++$i) {
if($i != 14) {
echo 'q' . $i . "<br>";
}
else {
for($j='a'; $j<='e'; ++$j) {
echo 'q14' . $j . "<br>";
}
}
}
如果您不需要按编号顺序执行语句,那么如果计数器为14,也可以在第一个循环中跳过一个,然后再进行第二个循环(不嵌套在第一个循环中),之后q14s。
您可以从表中获取列并进行测试以查看它们是否以q
开头(或使用preg_match
):
$result = query("DESCRIBE tresults");
while($row = fetch($result)) {
if(strpos($row['Field'], 'q') === 0) {
$query .= "SELECT COUNT(". $r .") as Responses FROM tresults;";
}
}
或构建columns数组并使用它:
$columns = array('q1', 'q2', 'q54'); //etc...
foreach($columns as $r) {
$query .= "SELECT COUNT(". $r .") as Responses FROM tresults;";
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.