У меня есть цикл над строками данных mysql в php, и я хочу сравнить значение из одной строки со значением из следующей строки. Я до сих пор сделал такой код:Неподдерживаемый тип операнда при сравнении значений в петле php
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
$current_row = $row;
$next_row = $row+1;
if ($current_row["begin_date"] > $next_row["end_date"])
{
(...)
}
}
} else {
echo "0 results";
}
, но я получаю ошибку о том, что $ строки + 1 производит Фатальная ошибка: неподдерживаемые типы операндов. Как я могу это исправить?
Например, когда у меня есть строки, как это:
begin_dates | end_dates
row1: value1 | value2
row2: value3 | value4
row3: value5 | value6
row4: value7 | value8
и я хочу, чтобы сравнить значение2 с Value3, Value4 с value5 и value6 с value7 - как я могу сделать это в цикле? Также - обрабатывает ли php sth как indexarrayoutofbounds exception? Я хочу сделать этот цикл обобщенным и не беспокоиться в будущем, чтобы достигнуть последнего индекса, например, в этом случае, поскольку value8 является последним - я не хочу сравнивать его с нулевым значением (не существующее значение9). Благодаря!
Я думаю, вы должны сначала сохранить все строки в массив и сортировать массив .. –
могли бы вы дать мне подсказку, как это сделать? и другой вопрос - как насчет производительности? быстрее ли сохранять все данные в массив и сортировать массив или сортировать его при выполнении запроса sql (порядок от ...)? – randomuser2
Как бы '$ row + 1' получить следующую строку? – adeneo