PHP-массив mysql извлекает каждую запись

Solutions Collecting From Web of "PHP-массив mysql извлекает каждую запись"

Вы можете использовать это вместо этого:

 $q = "select serial from book where serial like '%" . implode($serialID, "%' OR serial LIKE '%") . "%'"; $r = mysqli_query($dbc, $q); while($row = mysqli_fetch_array($r, MYSQLI_ASSOC) echo $row['serial'].'<br />'; 

В вашем цикле for вы SELECT все строки, но только последний экземпляр сохраняется в переменной (в последней итерации цикла for ), поэтому вы выбираете только его в цикле while.

PS Вы также можете это обработать, поставив цикл while в конец цикла for , но код выше просто не громоздкий.

Изменить: вы всегда переопределяете оператор select в цикле for, прежде чем запрашивать его. Таким образом выполняется только последний запрос с последним серийным

я надеюсь, что вы сделали ошибку, что в запросе вы сохранили лимит 1, так что это причина, по которой вы получаете только последнюю запись

 for($i = 0; $i < count($serialID); $i++) { $sql=select serial from book where serial like \"$serialID[$i]\" $r = mysqli_query($sql); } while($row = mysqli_fetch_array($r) { echo $row['serial'].'<br />'; } 
 $serialID = array("0001","0002","0003","0004","0005"); //DB Connection foreach($serialID as $serial){ $q = "select serial from book where serial like '%".$serial."%' limit 1"; $r = mysqli_query($dbc, $q); while($row = mysqli_fetch_array($r, MYSQLI_ASSOC) echo $row['serial'].'<br/>'; } 
  for($i = 0; $i < count($serialID); $i++) { $r = mysqli_query($sql); $sql=select serial from book where serial like "$serialID[$i]" } while($row = mysqli_fetch_array($r) { echo $row['serial'].'<br />'; }