phpbar.de logo

Mailinglisten-Archive

[php] Arrayfunktion - welche?

[php] Arrayfunktion - welche?

Sebastian Mendel lists at sebastianmendel.de
Die Nov 30 16:27:49 CET 2004


Joern Grube wrote:
> Sebastian Mendel schrieb:
> 
>> Joern Grube wrote:
> 
> 
>>> Das Ganze natürlich nicht nur einmal, sondern eben alle Bundesländer 
>>> Deutschland und diverser anderer Staaten. Nun will ich das Ergebnis 
>>> in einer Tabelle ausgeben und zwar EINMAL als th den Staat und dann 
>>> als td's die dazugehörigen Bundesländer. Gibt es da für ein Array 
>>> sowas wie SELECT DISTINCT für die Datenbank? Oder brauch ich was ganz 
>>> anderes?
>>
>>
>>
>> schrieb das Array beim auslesen halt gleich so wie du es brauchst z. B.
>>
>> while ( $row = mysql_fetch_assco( $result ) )
>> {
>>     $staat[$row['all_staat_id']]['name'] = $row['all_staat_staat'];
>>     $staat[$row['all_staat_id']]['länder'][$row['all_bundesland_id']] 
>> = $row['all_bundesland_bundesland'];
>> }
> 
> 
> Ich gebs ungern zu, aber ich krieg das irgendwie nicht mit :(
> Ich hab unten angehängten Code, der funktioniert auch soweit, gibt mir 
> aber eben immer Staat => Bundesland. Ich hab mir auch array_unique 
> angesehen, aber irgendwie komme ich nicht dahinter, wie mir das 
> weiterhelfen soll :(
> Vielleicht wäre jemand so nett, nochmal ein wenig zu schubsen.
> -- 
>  Mit freundlichen Gruessen Joern Grube
> 
> 
> $sql = "SELECT
>         all_staat_id,
>         all_staat_staat,
>         all_bundesland_id,
>         all_bundesland_bundesland,
>         all_bundesland_staat
>     FROM
>         all_staat,
>         all_bundesland
>         WHERE all_bundesland_staat = all_staat_id
>         ORDER BY all_staat_staat, all_bundesland_bundesland ASC";

Wieso lässt du Daten aus der DB holen die du gar nicht verwendest?
Und ist `all_bundesland_staat` nicht ein String und `all_staat_id` nicht 
eine Zahl (im WHERE)?

    SELECT all_staat_staat           AS `staat`,
           all_bundesland_bundesland AS `land`
      FROM all_staat,
           all_bundesland
     WHERE all_bundesland_staat = all_staat_id
  ORDER BY all_staat_staat,
           all_bundesland_bundesland ASC


> 
> // Neue Instanz der DB-Klasse Query erstellen

welche DB-Klasse ?

> $anzeige = new Query($sql);
>     if($anzeige->error()) {
>         echo "<pre>\n";
>         echo $anzeige->getError();
>         echo "</pre>\n";
>         die();
>     }
> 
> $i = 0;
> 
> while($i < $anzeige->numRows()) {
>     echo "<tr onMouseOver=\"this.bgColor='#ccffcc'\" 
> onMouseOut=\"this.bgColor='#ffffff'\">";
>     for($a = 1; $a < 4; $a++) {
>         if($i < $anzeige->numRows()) {
>             $cell = $anzeige->fetch();
>             $i++;
>             echo "<td width=\"33%\">".$cell["all_staat_staat"]." => 
> ".$cell["all_bundesland_bundesland"]."</td>";
>         } else {
>             echo "<td width=\"33%\">&nbsp;</td>";
>             }
>     }
>     echo "</tr>";
> }

ganz schön umstandlich ...

while ( $row = $anzeige->fetchRow() )
{
     $staaten[$row['staat']][] = $row['land'];
}

foreach ( $staaten as $staat => $laender )
{
     echo '<tr><th>' . $staat . '</th><td>' . implode( ', ', $laender ) 
. '</td></tr>';
}

... irgendwie so ...


-- 
Sebastian Mendel

www.sebastianmendel.de www.warzonez.de www.tekkno4u.de www.nofetish.com
www.sf.net/projects/phpdatetime        www.sf.net/projects/phptimesheet


php::bar PHP Wiki   -   Listenarchive