До сих пор я имел дело только с отношениями один-к-одному в php, но я застрял в проблеме, которая включает отношения один-ко-многим. Я сидел на этом несколько дней без удачи, поэтому я отчаянно нуждаюсь в том, чтобы кто-то вмешался и показал мне решение, прежде чем я сошел с ума.
В моей базе данных есть ряд URL-адресов, которые получены запросом SELECT вместе с различными другими полями из разных таблиц. Каждый URL имеет по крайней мере одну категорию, связанную с ним, но может иметь несколько категорий. Так что в моих результатах я могу увидеть что-то вроде этого:
link_id = 3 url= 'http://www.somesite1.com' category = 'uncategorised'
link_id = 4 url= 'http://www.somesite2.com' category = 'travel'
link_id = 4 url= 'http://www.somesite2.com' category = 'fun'
link_id = 4 url= 'http://www.somesite2.com' category = 'misc'
link_id = 3 url= 'http://www.somesite3.com' category = 'uncategorised'
У меня это работает, вроде. Когда я зацикливаюсь и распечатываю их, используя цикл while и массив извлечения mysql, результат выглядит точно так же, как и выше. Это здорово, за исключением того, что мне нужно, чтобы прочитать что-то вроде:
link_id = 4 url = 'http://www.somesite2.com' category = 'travel fun misc'
Так что в основном все категории для каждого URL объединяются как-то по мере их вывода на печать. Моя первая попытка побудила меня попробовать вложенный цикл while, но он не сработал, и я не уверен, возможно ли это. Кроме того, мне интересно, может ли мне понадобиться многомерный массив (полное предположение, мне никогда не приходилось использовать его раньше).
Я упорядочиваю эти результаты по идентификатору ссылки, как указано выше, поэтому я знаю, совпадает ли идентификатор ссылки в текущей итерации цикла с идентификатором в последней итерации - тогда у меня есть нечто, имеющее более одной категории ... Я думаю, Я действительно близко, но я просто не могу понять это.
Есть идеи?