Как разобрать построчный вывод из базы php?

Здравствуйте.

Выбираю данные из базы:

while ($can = mysqli_fetch_assoc($res)) {
     echo $can["a"];
     echo $can["b"];
     echo $can["c"];
     echo $can["d"];
}


Вывод получается, допустим такой:
1 ac 90 w5
1 bs 91 f6
1 sl 93 s5

2 ka 91 n8
2 ls 93 v9

3 qw 93 d6
3 kf 45 e1

Прошу, дайте мне рекомендацию, как при выводе проанализировать значение столбца "а" и выводить данные только первой строки с одинаковыми значениями $can["a"], но при этом вместо столбца "d" из вывода подставить значения из другой строки (при анализе только строк с одинаковыми значениями в столбце "а").
То есть, исходя из предложенного примера, подставим вместо "d" значение из строки с одинаковыми "а" где "c" == 93. При этом выведем только одну строку из "группы" с одинаковыми "а".

Необходимый результат:
1 | ac | 90 | s5
2 | ka | 91 | v9
3 | qw | 93 | d6
  • Вопрос задан
  • 122 просмотра
Пригласить эксперта
Ответы на вопрос 2
@akamap
примерно так
$set = [];
while ($can = mysqli_fetch_assoc($res)) {
    if ($set[$can['a']] && $can['c'] == 93) {
         $set[$can['a']]['d'] = $can['d'];
       } elseif (empty($set[$can['a']])) {
         $set[$can['a']] = $can;
    } 
}
Ответ написан
@barrty Автор вопроса
А есть какой-то вариант через запрос к базе? Таблица с данными там основная одна, но join тоже присутствует.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы