麻烦以我想要的顺序回显sql查询

时间:2011-04-18 01:01:09

标签: php mysql sql while-loop echo

我在php sql和stuff中的新东西,我一直在尝试以一种方式来显示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..

nombreProvincia2

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/>";
        }
      }
    }
  } ?>

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

1 个答案:

答案 0 :(得分:0)

你可以尝试类似的东西。它不是最优的,但你应该理解它是如何工作的。

$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);