2009-12-23 56 views
0

就在我把代码行放在让我解释我想要实现的东西之前。Mysql加入,PHP

我想查询特定页面具有特定parent_id的表。一旦我有了所有的结果,我就会喜欢带有这个特定parent_id的页面的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'"); 
+0

你的示例代码目前在做什么?有没有错误,或者结果有点不对? – philfreo 2009-12-23 13:11:53

+0

它似乎列出了我拥有的四个投资组合,但似乎重复它们,可能是因为页面部件被不正确的连接添加了? – Andy 2009-12-23 13:12:39

回答

0

您可以发布您查询的结果?据我可以看到你的选择语句应该做的重复每个匹配部分的cms_page.id等字段的技巧。

又见http://www.w3schools.com/Sql/sql_join_left.asp

这(我希望)应该解决您的$行[ '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>'; 
} 
+0

http://www.ldmgardendesign.com/portfolio.html – Andy 2009-12-23 13:25:11

+0

我希望页面部分作为四个投资组合之一的结果集而不作为单个结果返回。 所以你有一个投资组合,然后关联的页面部件作为一行。 – Andy 2009-12-23 13:26:33

+0

我只是重新阅读您的文章,其几乎就像我需要它的另一种方式....即每个cms_page.id – Andy 2009-12-23 13:31:47

0

应该有与检索多行给你当前的查询没有问题:

$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 />'; 
    } 
} 
+0

它的$ row ['page_part']这是一个棘手的位...这基本上是什么编号喜欢能够打印... – Andy 2009-12-23 14:05:33