проблема повторения запроса SQL в порядке, я хочу - PullRequest
0 голосов
/ 18 апреля 2011

Я новичок в 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..

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 голосов
/ 18 апреля 2011

Вы можете попробовать что-то подобное. Это не оптимально, но вы должны понимать, как это работает.

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