Я получил сложный запрос, который дает объединенный результат. Тем не менее, хотя GROUP_CONCAT
необходимо для других целей, мне все же нужно иметь возможность использовать части объединенной строки по отдельности.
GROUP_CONCAT(id, name, date AS concat1
echo $db_field['concat1'];
... выдает такой вывод: IdNameDate
, и мне нужно иметь возможность использовать (и выводить) Id, Name и Date отдельно. Я думаю, это должно быть присвоено массиву, я новичок в PHP, и я действительно ценю любую помощь.
Для простоты выше я использовал id
вместо eventid
, name
вместо eventname
и date
вместо eventstartdate
. Ниже приведен полный код.
if ($db_found) {
$SQL ="
select sportname,
tournament_templatename,
tournament_stagename,
GROUP_CONCAT(eventid, eventname, eventstartdate SEPARATOR '<br />' ) as concat1
from (
SELECT event.id AS eventid,
event.name AS eventname,
event.tournament_stageFK AS eventtournamentstageFK,
event.startdate AS eventstartdate,
tournament_stage.id AS tournament_stageid,
tournament_stage.name AS tournament_stagename,
tournament_stage.tournamentFK AS tournament_stagetournamentFK,
tournament.id AS tournamentid,
tournament.name AS tournamentname,
tournament.tournament_templateFK AS tournamenttournament_templateFK,
tournament_template.id AS tournamenttemplateid,
tournament_template.name AS tournament_templatename,
tournament_template.sportFK AS tournament_templatesportFK,
sport.id AS sportid,
sport.name AS sportname
FROM
event INNER JOIN tournament_stage ON event.tournament_stageFK=tournament_stage.id
INNER JOIN tournament ON tournament_stage.tournamentFK=tournament.id
INNER JOIN tournament_template
ON tournament.tournament_templateFK=tournament_template.id
INNER JOIN sport ON tournament_template.sportFK=sport.id
WHERE
DATE(event.startdate) = CURRENT_DATE()
) a
group by sportname, tournament_templatename, tournament_stagename
order by sportid, tournament_templatename, tournament_stagename";
$result = mysql_query($SQL);
if($result === FALSE) {
die(mysql_error());
}
while($db_field=mysql_fetch_assoc($result)){
echo $db_field['concat1'];
}
mysql_close($db_handle);
}
Мне либо нужен способ возврата к результатам перед их объединением, либо способ отображения IdNameDate в качестве Id * Имя * Дата, чтобы я мог использовать * в качестве разделителя разнесения.