FrankieB: Array sortierung

Beitrag lesen

Hallo Daniel,

Frage: Warum baust Du das Array nicht gleich so zusammen wie Du es ausgeben möchtest? Würde alles erheblich einfacher machen.

also das array wird so aufgebaut:

$sql = "SELECT * FROM $tbl_lookup_amp GROUP BY id_programm ORDER BY id_programm desc";
$benutze_prog_erg = mysql_query($sql);
$benutze_prog_dat = mysql_fetch_array($benutze_prog_erg); //um die höchste ID der benutzten programme zu erhalten
for($z=1; $z<= $benutze_prog_dat['id_programm']; $z++)
{
  $sql = "SELECT * FROM $tbl_programme WHERE id_programm='$z'"; //daten der einzelnen programme lesen (name etc.)
  $erg = mysql_query($sql);
  if(mysql_num_rows($erg)>=1)
  {
    $daten = mysql_fetch_array($erg);
    $sql = "SELECT * FROM $tbl_lookup_amp WHERE id_programm='$z'"; // Wie oft wirds benutzt?
    $erg = mysql_query($sql);
    $anzahl_user = mysql_num_rows($erg);
    if ($anzahl_user>0)
    {
      $prog_array[][$anzahl_user] = $daten['name']; //eintrag in Array
      echo "<tr><td>$daten[name]</td><td>$anzahl_user</td></tr>\n";
    }
  }
}


>   
> wie müsst ich den code verändern damit das gleich sortiert drinsteht?  
  
~~~php
  
  
$sql = "SELECT id_programm, count(*) as anzahl_user FROM $tbl_lookup_amp GROUP BY id_programm";  
$benutze_prog_erg = mysql_query($sql);  
  
$out = "";  
while ($row = mysql_fetch_array($benutze_prog_erg, MYSQL_ASSOC)) {  
  $sql = "SELECT name_program FROM $tbl_programme WHERE id_programm='".$row['id_programm']."' ORDER BY name_program";  
  $erg = mysql_query($sql);  
  if ($daten = mysql_fetch_array($erg)) {  
    $out[$daten['name_program']] = $row['anzahl_user'];  
  }  
}  
  
echo "<pre>"; print_r($out); echo "</pre>";  

Die Ausgabe sollte nach name_program sortiert sein.

Das ist ungetestet, sollte aber prinzipiell funktionieren. Bezeichnungen und so mußt halt anpassen.

Probier's einfach mal aus und sag bescheid ob's funktioniert.

Grüsse
Frankie