У меня есть этот кусок кода, и как-то он всегда будет пропускать первый результат, и я понятия не имею, почему, потому что я использую такой же цикл while в другом месте в моем коде, и проблема не бывает. Если я запускаю только MYSQL-запрос без цикла, я получаю все результаты, но код ниже всегда будет пропускать первую строку. Было бы здорово, если бы кто-нибудь мог дать мне совет или, возможно, реструктурировать запрос?MySQL пропустил первый результат
Спасибо
EDIT ** добавлены, если заявления
($stmt = $db->prepare('SELECT DISTINCT agdet.ADITEM, agdet.ADSTAT, products.IFDESC, products.ISTAT
FROM agdet
LEFT JOIN products on agdet.ADITEM = products.ITEMNO
LEFT JOIN aghdr on agdet.AHNUM = aghdr.AHNUM
WHERE agdet.AHCUST =?
AND products.ICODE1 !=?
AND aghdr.AHSTAT !=?
ORDER BY agdet.ADITEM ASC
LIMIT 0, 3000'))
|| fail('MySQL prepare', $db->error);
$stmt->bind_param('iss', $agreement,$ICODE1,$AHSTAT)
|| fail('MySQL bind_param', $db->error);
$stmt->execute()
|| fail('MySQL execute', $db->error);
$stmt->bind_result($ADITEM,$ADSTAT,$IFDESC,$ISTAT)
|| fail('MySQL bind_result', $db->error);
while($stmt->fetch()){
$IFDESC = trim($IFDESC);
$ADITEM = trim($ADITEM);
if ($IFDESC == 'TAXABLE' ){ $ADITEM = 'hidden';}
if ($IFDESC == 'XXXX' ){ $ADITEM = 'hidden';}
if ($IFDESC ==''){ $IFDESC = 'Aucune description trouvée';}
$ITEM_ID = ltrim($ADITEM, '0');
if ($ISTAT =='S' OR $ADSTAT =='S'){
printf ("<p>$ADITEM</p><p>ADSTAT</p><p>$IFDESC</p><p>$ISTAT</p>");
}
else {
printf ("<p>$ADITEM</p><p>ADSTAT</p><p>$IFDESC</p><p>$ISTAT</p>");
}
}
Это ваш фактический код или psuedocode? Ничто не похоже на то, что это вызовет вашу проблему. – Devon
Вы должны сделать переменные 'var_dump()', возможно, они нарушают html. – jeroen
Это мой код, просто printf как больше материала для него ... некоторые операторы if, которые проверяют, приостановлен ли продукт или нет. – Globz