Как раз перед тем, как поставить строку кода, позвольте мне объяснить, чего я пытаюсь достичь.
Id нравится запрашивать таблицу, где определенная страница имеет определенный parent_id. После того, как у меня есть все результаты, я хотел бы взять идентификатор страницы, которая имеет этот конкретный parent_id, и получить все его относительные части страницы из другой таблицы.
Затем я просто хочу получить эту информацию в массиве, готовом к печати...
Любая помощь будет принята с благодарностью...
$q = $CONN->query("SELECT cms_page.id, cms_page.title, cms_page.slug, cms_page_part.* FROM cms_page LEFT JOIN cms_page_part ON cms_page_part.page_id=cms_page.id WHERE cms_page.parent_id='8'");
Не должно быть проблем с извлечением нескольких строк с учетом вашего текущего запроса:
$sql = "SELECT cms_page.id, cms_page.title, cms_page.slug, cms_page_part.*
FROM cms_page
LEFT JOIN cms_page_part ON (cms_page_part.page_id = cms_page.id)
WHERE cms_page.parent_id = '8'";
Вам нужно будет перебрать результат из mysql_query следующим образом:
$result = mysql_query($sql);
if ($result) {
// keep track of number of portfolio items
$i = 1;
// iterate over rows
while($row = mysql_fetch_assoc($result)) {
// output data to page for each row
echo 'Portfolio item ' . $i;
echo 'Title: ' . $row['title'] . '<br />';
echo 'Slub: ' . $row['slug'] . '<br /><br />';
}
}
Можете ли вы опубликовать результаты своего запроса? Насколько я вижу, ваш оператор select должен делать трюк, повторяя поля cms_page.id и т.д. Для каждой соответствующей части.
См. также http://www.w3schools.com/Sql/sql_join_left.asp
Это (надеюсь) должно решить ваш вопрос $row ['page_part']:
$rows = array();
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
while ($row) {
$rows[$row['title']][] = $row; // or select only the fields that you need
$row = mysql_fetch_assoc($result);
}
foreach($rows as $portfolio => $parts) {
// adjust for actual html rendering
echo '<pre>';
print_r($portfolio);
echo "\n";
$count = 0;
foreach($parts as $part) {
echo ++$count . ' - ' . $part['cms_page_part_field1'] . ' - ' . $part['cms_page_part_field2'] . "\n";
}
echo '</pre>';
}