2011-04-18 70 views
0

即时通讯新的PHP的SQL和东西,我一直在想办法按顺序显示一个SELECT。麻烦回应一个SQL查询,我想要的顺序

让我解释这更好,这是查询我:

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

但它没有工作,希望有人能帮助我。谢谢。

回答

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); 
+0

哇,非常感谢你!,它完美地工作!,我还以为在做群查询,你认为你让一切都更容易? – Gmo 2011-04-18 03:11:28

+0

编号GROUP BY是当你想对查询做一些聚合函数时,比如SUM或MAX ... – 2011-04-18 12:18:03