【问题标题】:trouble echoing a sql query in the order i want无法按我想要的顺序回显 sql 查询
【发布时间】:2011-08-07 13:00:56
【问题描述】:

我是 php sql 和其他东西的新手,我一直在尝试以一种方式来按顺序显示 SELECT。

让我更好地解释一下,这是我的查询:

$resultAraucania = mysql_query("SELECT nombre.idNombre, 
                                       nombre.nombre AS nombreNombre, 
                                       comuna.nombre AS nombreComuna, 
                                       giro.nombre AS nombreGiro, 
                                       provincia.nombre AS nombreProvincia, 
                                       region.nombre AS nombreRegion 
                                  FROM nombre 
                            INNER JOIN comuna ON nombre.Comuna_idComuna = comuna.idComuna 
                            INNER JOIN giro ON nombre.Giro_idGiro = giro.idGiro 
                            INNER JOIN provincia ON comuna.Provincia_idProvincia = provincia.idProvincia 
                            INNER JOIN region ON provincia.Region_idRegion = region.idRegion 
                                 WHERE provincia.Region_idRegion = 9
                              ORDER BY nombreProvincia, nombreComuna, nombreGiro, nombreNombre");

看到最后,我按 nombreProvincia、nombreComuna、nombreGiro、nombreNombre 订购。 我怎样才能以一种首先得到 nombreProvincia 的所有结果、在 nombreComuna 的所有结果中等等的方式来回显它,所以我得到这样的东西:

nombreProvincia1

nombreComuna1
  nombreGiro1
     nombreNombre1, nombreNombre2, nombreNombre3...

  nombreGiro2
     nombreNombre4, nombreNombre5, nombreNombre6...

  nombreGiron...
    nombreNombren...

nombreComunan..

nobreProvincia2

nombreComuna21...
  nombreGiro...
    nombreNombre....

希望我解释得足够清楚,我想这样做:

<?php
  while($row = mysql_fetch_assoc($resultAraucania)) {
    echo $row['nombreProvicia']."<br/>";

    while($row = mysql_fetch_assoc($resultAraucania)) {
      echo "&nbsp;".$row['nombreComuna']."<br/>";

      while($row = mysql_fetch_assoc($resultAraucania)) {
        echo "&nbsp;".$row['nombreGiro']."<br/>";

        while($row = mysql_fetch_assoc($resultAraucania)) {
          echo "&nbsp;".$row['nombreNombre']."<br/>";
        }
      }
    }
  } ?>

但它没有用,希望有人可以帮助我。谢谢。

【问题讨论】:

    标签: php mysql sql while-loop echo


    【解决方案1】:

    您可以尝试类似的方法。它不是最佳的,但您应该了解它的工作原理。

    $nombreProvincia = "";
    $nombreComuna = "";
    $nombreGiro = "";
    $nombreNombre = array();
    
    while ($row = mysql_fetch_assoc($resultAraucania)) {
        if ($nombreProvincia == $row['nombreProvincia']) {
            if ($nombreComuna == $row['nombreComuna']) {
                if ($nombreGiro == $row['nombreGiro']) {
                    $nombreNombre[] = $row['nombreNombre'];
                }
                else { //nombreGiro
                    echo '&nbsp;&nbsp;' . implode(', ', $nombreNombre);
                    $nombreGiro = $row['nombreGiro'];
                    echo '<br/>&nbsp;'.$nombreGiro;
                    $nombreNombre = array($row['nombreNombre']);
                }
            }
            else { // nombreComuna
                echo '&nbsp;&nbsp;' . implode(', ', $nombreNombre);
                $nombreComuna = $row['nombreComuna'];
                echo '<br/>'.nombreComuna;
                $nombreGiro = $row['nombreGiro'];
                echo '<br/>&nbsp;'.$nombreGiro;
                $nombreNombre = array($row['nombreNombre']);
            }
        }
        else { // nombreProvincia
            if (!empty($nombreNombre)) {
                echo '&nbsp;&nbsp;' . implode(', ', $nombreNombre);
            }
            $nombreProvincia = $row['nombreProvincia'];
            echo '<h1>'.$nombreProvincia.'</h1>'."\n";
            $nombreComuna = $row['nombreComuna'];
            echo '<br/>'.nombreComuna;
            $nombreGiro = $row['nombreGiro'];
            echo '<br/>&nbsp;'.$nombreGiro;
            $nombreNombre = array($row['nombreNombre']);
        }
    }
    echo '&nbsp;&nbsp;' . implode(', ', $nombreNombre);
    

    【讨论】:

    • 哇,非常感谢!,效果很好!,我还想用 group by 进行查询,你认为你让一切变得更容易了吗??
    • 没有。 GROUP BY 是当您想对查询执行一些聚合函数时,例如 SUM 或 MAX...
    猜你喜欢
    • 2021-04-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    相关资源
    最近更新 更多