Mysql连接,PHP

Mysql连接,PHP,php,mysql,Php,Mysql,在我开始编写代码之前,让我解释一下我要实现的目标 我想查询一个表,其中一个特定的页面有一个特定的父Id。一旦我有了所有的结果,我想获取这个特定的父Id的页面的Id,并从另一个表中获取它的所有相关页面部分 然后我只想把这些信息放在一个数组中准备好打印 任何帮助都将不胜感激 $q = $CONN->query("SELECT cms_page.id, cms_page.title, cms_page.slug, cms_page_part.* FROM cms_page LEFT JOIN c

在我开始编写代码之前,让我解释一下我要实现的目标

我想查询一个表,其中一个特定的页面有一个特定的父Id。一旦我有了所有的结果,我想获取这个特定的父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'");

你能公布你的查询结果吗?据我所知,select语句应该为每个匹配部分重复cms_page.id等字段

另见

这(我希望)能解决你的$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>';
}
$rows=array();
$result=mysql\u查询($sql);
$row=mysql\u fetch\u assoc($result);
while($row){
$rows[$row['title'][]=$row;//或仅选择所需的字段
$row=mysql\u fetch\u assoc($result);
}
foreach($portfolio=>$parts的行){
//根据实际html呈现进行调整
回声';
印刷(投资组合);
回音“\n”;
$count=0;
foreach($parts作为$part){
echo++$count.'-'.$part['cms\u page\u part\u field1'.-'.$part['cms\u page\u part\u field2'.]。“\n”;
}
回声';
}

根据当前查询检索多行应该没有问题:

$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 />';
    }
}
您可能希望循环使用类似以下内容的结果集:

$result=mysql\u查询($sql);
如果($结果){
//跟踪投资组合项目的数量
$i=1;
//迭代行
while($row=mysql\u fetch\u assoc($result)){
//将每行的数据输出到页面
回显“投资组合项目”。$i;
回显“Title:”.$row['Title']。
; 回音“Slub:”.$row['slug']。

; } }
您的示例代码目前做什么?是否存在错误,或者结果是否有误?它似乎列出了我拥有的四个投资组合,但似乎重复了它们,可能是因为页面部分被添加了一个不正确的连接,也许?我希望页面部分作为四个投资组合中的一个的结果集,不会作为单独的结果返回。因此,您有一个公文包,然后关联的页面部分作为一行。我只是重新阅读您的帖子,它几乎像我需要它的另一种方式…即为每个cms_页面匹配部分。ID然后我建议您选择:-保留1个查询并在构建视图时迭代您的结果集(创建无序列表的部分)-对每个PortfolioTanks进行一次查询(获取零件)以获得您的帮助…我会调查一下。这是$row['page_part'],这是一个棘手的问题…这基本上是我希望能够打印的内容。。。
$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 />';
    }
}