我有一个不同行高度的数据表,例如600,700,800。如果用户在表单中输入650,那么查询需要选择高度参数为700的行(它总是转到较大的项目。)我的问题是我选择了高度项目和它在数组中,但是如何为每个数组行添加一个新名称,例如rowitem1,rowitem2,rowitem3以便以后查询时可以执行?数组中的所有项目都是[' 0']。我需要每行增加。
REPLACE(COALESCE(STR(temp.AdminTestId,5), ''),' ','0') + '-' +
REPLACE(COALESCE(STR(A.UserTestId,5), ''),' ','0') +
REPLACE(COALESCE('-' + STR(A.Sequence,2), ''),' ','0') as TestId,
编辑:打印数组的输出
$res2 = mysqli_query($con,"SELECT height FROM datatable WHERE blind = '$blindselected2'");
while($row2 = mysqli_fetch_array($res2)) {
$rowitem = $row2['0'];
if ($height2 == $rowitem) {
$selectedrowitem = $rowitem;
}
if ($height2 > $rowitem && $height2 < $nextrowitem) {
$selectedrowitem = ....
}
我也尝试了以下内容:
Array ( [0] => 0 [height] => 0 )
Array ( [0] => 600 [height] => 600 )
Array ( [0] => 700 [height] => 700 )
Array ( [0] => 800 [height] => 800 )
Array ( [0] => 900 [height] => 900 )
Array ( [0] => 1000 [height] => 1000 )
Array ( [0] => 1100 [height] => 1100 )
Array ( [0] => 1200 [height] => 1200 )
Array ( [0] => 1300 [height] => 1300 )
Array ( [0] => 1400 [height] => 1400 )
Array ( [0] => 1500 [height] => 1500 )
Array ( [0] => 1600 [height] => 1600 )
Array ( [0] => 1700 [height] => 1700 )
Array ( [0] => 1800 [height] => 1800 )
Array ( [0] => 1900 [height] => 1900 )
Array ( [0] => 2000 [height] => 2000 )
和回波电流的输出($ row2)。下一个($ 2行);如下,我可以看到它没有进入下一个项目:
*
while($row2 = mysqli_fetch_array($res2)) {
$rowitem = $row2['height'];
echo current($row2) . next($row2);
echo '<br>';
if ($height2 == current($row2['height'])) {
$selectedrowitem = $rowitem;
} elseif ($height2 > current($row2) && $height2 < next($row2)) {
$selectedrowitem = next($row2);
break;
} else {
$selectedrowitem = 'error';
}
}//WHILE
*
答案 0 :(得分:1)
当您使用current
和next
指令时,不会遍历行,您会遍历行内的索引。
当您执行$row2 = mysqli_fetch_array($res2)
时,您没有关于上一行或下一行的信息(没有额外复杂的身体动作和敲打手鼓)。如果您想获得此类信息,则需要使用mysqli_fetch_all
从数据库中获取完整结果,并使用foreach
或for
循环迭代此结果。
如果要选择一些大于或等于用户在表单中提到的高度,则需要修改查询以便仅选择更大或相等的行。
$res2 = mysqli_prepare(
$con,
'SELECT `height` FROM `datatable` WHERE `blind` = ? AND `height` >= ?'
);
$res2->bind_param('si', $blindselected2, $height2);
$res2->execute();
$res2 = $res2->get_result();
while ($row2 = $res2->fetch_assoc()) {
echo $row2['height'] . '<br>';
}
这就是全部。您可以修改SQL查询,以避免使用无法简化算法的指令使代码溢出。
答案 1 :(得分:0)
将您的代码更改为以下代码
$res2 = mysqli_query($con,"SELECT height FROM datatable WHERE blind = '$blindselected2'");
while($row2 = mysqli_fetch_array($res2)) {
$rowitem = $row2['height']; //you should change this row.
if ($height2 == $rowitem) {
$selectedrowitem = $rowitem;
}
if ($height2 > $rowitem && $height2 < $nextrowitem) {
$selectedrowitem = ....
}
希望它会对你有所帮助。只需将0改为&#39; height&#39;