我正在尝试构建一个由sql结果构成的字符串,我不知道当db中的数据大于1时如何实现这一点。
当数据库的结果为1时,我能够做到这一点。
for i = 1:length(MM(:,8)) %this should be size(MM,1)
ind1 = i;
lat1 = lat(ind1);
lon1 = lon(ind1);
ind2 = d;
lat2 = lat(ind2);
lon2 = lon(ind2);
w = MM(d,8);
t = MM(i,8)+5+1
dis = distance(lat1, lon1, lat2, lon2);
if dis<=1
contact = [ind1, ind2, t, w];
end
end
但是当我需要循环fetch_assoc时,我无法为变量赋值或直接构建字符串。
$result = $stmt_grade->fetch(PDO::FETCH_ASSOC);
$str ="[{$result['score_access']}, {$result['score_training']},
{$result['score_expectation']}, {$result['score_total']} ]";
我到处寻找并没有找到任何解决方案或任何类似的方法来寻找灵感。我希望有一个人可以帮助我。提前谢谢!
答案 0 :(得分:0)
最明显的方法是循环遍历while循环中的所有响应,并使用.=
运算符不断追加到字符串。您可以知道何时用完记录,因为$result
将为假。
我用换行符分隔每条记录。看起来你也想计算结果,所以我也补充说。
$str = ""; // start with an empty string
$count = 0;
while ( ($result = $stmt_grade->fetch(PDO::FETCH_ASSOC)) !== false ) {
// increment the record count
$count++;
// add a new line to the output string
$str .= "[{$result['score_access']}, {$result['score_training']},{$result['score_expectation']}, {$result['score_total']} ]\n";
}
应该这样做。
答案 1 :(得分:0)
您只需要正确命名字符串。
然后使用正确的方法创建 JSON 字符串。其中包括两部分:
假设您需要像这样的嵌套数组
[[1,2,3],[1,2,3],[1,2,3]]
代码将是
$result = $stmt_grade->fetchAll(PDO::FETCH_NUM);
echo json_encode($result);
答案 2 :(得分:0)
感谢所有提供的答案,没有你我无法做到。最后,我实现了如下所希望的结果,可能它不优雅但有效:
$stmt_count= $user->countbyespeciality();
while ($resultcount = $stmt_count->fetch(PDO::FETCH_ASSOC)){
$prueba.= "{$resultcount['subarea']},";
$prueba2.= "{$resultcount['number']},";
}
$string=rtrim($prueba, ",");
$string2=rtrim($prueba2, ",");
$final="[{$string}]";
$final2="[{$string2}]";
输出是[某事,某事] [1,2,]如预期的那样。 再次感谢!