php数组项全部命名为零

时间:2016-03-06 13:39:41

标签: php arrays

我有一个不同行高度的数据表,例如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

*

2 个答案:

答案 0 :(得分:1)

当您使用currentnext指令时,不会遍历行,您会遍历行内的索引。

当您执行$row2 = mysqli_fetch_array($res2)时,您没有关于上一行或下一行的信息(没有额外复杂的身体动作和敲打手鼓)。如果您想获得此类信息,则需要使用mysqli_fetch_all从数据库中获取完整结果,并使用foreachfor循环迭代此结果。

如果要选择一些大于或等于用户在表单中提到的高度,则需要修改查询以便仅选择更大或相等的行。

$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;