Możesz użyć tego zamiast :
$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 />';
W swoim for
zapętl SELECT
wszystkie wiersze, ale tylko ostatnia instancja jest zapisywana w zmiennej ( w ostatniej iteracji for
pętla), więc pobierasz tylko to w while
pętla.
PS Możesz to również rozwiązać, umieszczając swój while
pętla na końcu for
pętla, ale powyższy kod nie jest aż tak uciążliwy.