Может кто-нибудь объяснить мне, почему этот (сомнительный, устаревший и иначе грешный) PHP-код иногда возвращает строку, содержащую два символа звездочки один за другим? Другими словами, intval() иногда возвращает пустую строку.intval() в php возвращает пустую строку?
Какое значение может иметь столбец avcost для этой строки (avcost определяется как double)?
$rows = mysql_query("SELECT avcost FROM singles");
if (!$rows) return 5;
$buffer = "";
while ($row = mysql_fetch_row($rows))
{
$avcost = intval($row[0]); // round it
$buffer .= $avcost . "*";
}
echo $buffer; // Sometimes it echos something like: 5*0*3*0*34**4*5*
Полный ответ должен включать в себя минимальные исправления кода выше (без использования что-то вроде «если ($ avcost ==„“)» :-), что не гарантировать отсутствие двойной звездочки на выходе. Спасибо.
Что такое выход: 'var_dump ($ row [0]); '? – Rizier123
У вас, вероятно, есть строки в таблице, где 'avcost' равно null (не то же самое, что и 0). Вам нужно будет явно протестировать и заменить соответствующее значение. –
Но avcost определяется как double и not-nullable. – tobi85