我试图在循环中检索MySQL数据。但只有第一个显示数据。其他人都是空的。这就是它现在的工作方式 -
这是我的代码:
<?php
for ($i = 1; $i <= $quantity; $i++) {
echo'
<tr>
<!-- <td><input class="case" type="checkbox"/></td> -->
<td><input type="text" data-type="productCode" name="itemNo[]" id="itemNo_1" class="form-control autocomplete_txt" autocomplete="off" placeholder="Enter IMEI number"></td>
<td><select name="brand[]" class="form-control autocomplete_txt">';
while ($row = mysqli_fetch_array($result_brand)) {
echo '<option value="' . $row['brand'] . '">' . $row['brand'] . '</option>';
}
echo' </select> </td> <td><select name="model[]" class="form-control autocomplete_txt" >';
if (mysqli_num_rows($result_model) > 0) {
// output data of each row
while ($row_model = mysqli_fetch_assoc($result_model)) {
echo ' <option value="' . $row_model['model'] . '">' . $row_model['model'] . '</option>';
}
}
echo'
</select>
</td>
<td><input type="text" data-type="productName" name="brand[]" id="itemName_1" class="form-control autocomplete_txt" autocomplete="off" placeholder="Brand"></td>
<td><input type="text" data-type="productName" name="model[]" id="itemName_2" class="form-control autocomplete_txt" autocomplete="off" placeholder="Model"></td>
<td><input type="number" name="price[]" id="price_1" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;"></td>
<td><input type="number" value="1" name="quantity[]" id="quantity_1" class="form-control changesNo" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;" disabled></td>
<!-- <td><input type="number" name="total[]" id="total_1" class="form-control totalLinePrice" autocomplete="off" onkeypress="return IsNumeric(event);" ondrop="return false;" onpaste="return false;" disabled></td> -->
</tr>
';
}
?>
我不确定实际上是什么问题。
答案 0 :(得分:0)
问题是,在mysqli
循环运行一次后,while
结果的游标指向结果的末尾。
您必须在for
循环的开头调用mysqli_data_seek,将游标重置为第一个数据集:
for($i=1; $i<=$quantity; $i++) {
mysqli_data_seek($result_brand, 0);
mysqli_data_seek($result_model, 0);
...
另一种解决方案是在while
循环之前运行for
次循环并将结果存储在数组中,以便在{{1}内使用数组而不是mysqli_fetch_array
循环。