数据库(书本表)
serialID价格
0001 10.00
0001 30.00
0002 15.00
0004(A)9.00
0004(B)5.00
0005 3.00
(注:0003无记录)


$serialID = array("0001","0002","0003","0004","0005");

//DB Connection
for($i = 0; $i < count($serialID); $i++)
{
    $q = "select * from book where serial like \"$serialID[$i]%\" limit 1";
    $r = mysqli_query($dbc,$q);

    while($row = mysqli_fetch_array($r, MYSQLI_ASSOC))
    {
          $serial[$i] = $row['serial'];
          $price[$i] = $row['price'];
          echo $serial[$i].' '.$price[$i];
    }
}

//pass db value into array
for($j = 0; $j < count($serialID); $j++)
{
     $data[$j] = array($serialID[$j],$price[$j]);
}

这次我的问题是如何跳过serialID 0003的值?
我的预期输出:(echo $ serial [$ i]。''。$ price [$ i])
0001 10.00
0002 15.00
0003
0004(A)9.00
0005 3.00

最佳答案

修改最后一个循环为

for($j = 0; $j < count($serialID); $j++)
{
if(null != $price[$j]){
     $data[$j] = array($serialID[$j],$price[$j]);
    }
}


但是我的问题是,查询循环不是成功的吗?也许您应该使用“ IN”语句?还是“或”?
例如:

foreach($serialId as $id){
  $string.= ' %'.$serialId. ' % OR '; //of course you should check if this is first or last cell in array. So you don’t add unnecessary OR or space
}
select * from book where serial like \"$string\" limit 1

关于php - PHP数组mysql检索每个记录(第2部分),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27916770/

10-10 18:00