Mailinglisten-Archive |
Aloha,
> ----------
> Von: Frank Schnaue[SMTP:fschnaue_(at)_gmx.de]
>
> Hallo,
> ich möchte Hilfe erbitten für folgendes Problem:
> Aus einer Musik-DB werden über eine Schleife alle Interpreten in =
ein
> select-feld ausgelesen, über welches dann der entsprechende Eintrag
> ausgelesen
> werden kann.
> Da mehrere Interpreten vorhanden sind, kommen Einträge teilweise =
doppelt
> vor.
> Ich möchte, daß im select-feld dann folgendes steht:
> Tom Waits
> Van Morrison (4)
> Deep Purple (2)
>
ich nehme mal an, daß die Zahl in der Klammer die Anzahl
der Einträge in der DB darstellen soll ....
> etc.
>
> Hier das Codefragment:
> // BODY-Formatierung
> include("./inc.body.php3");
> // Datenbank-Verbindung aufbauen
> include("./inc.pconnect.php3");
> connect();
> // Zuerst die gesamte Anzahl der Datensätze in der Datenbank finden =
> $sql = "SELECT * FROM $DB_TABLE";
> $sql .= " ORDER BY artist,date_id";
> $sql .= ";";
>
ersetze die 3 Zeilen durch:
$sql = "select artist, count(artist) from $DB_TABLE order by
artist,date_id;";
> // Die SQL-Anweisung ausführen
> $sql_result = mysql_db_query( $DB_DATABASE, $sql, $dbh ) or =
mysql_die();
>
> // mit einer Schleife die select-box aus der Datenbank füllen
$selected = ' selected';
> while ($row = mysql_fetch_array($sql_result)) {
ab hier streichen bis
> $r_artist = $row[$data_field];
> $r_first = "ABBA";
> if ($r_first == r_artist)
> { $option_block .= "<OPTION VALUE=\"$r_artist\"
> SELECTED>$r_artist</OPTION>";
> }
> else{
> $option_block .= "<OPTION =
VALUE=\"$r_artist\">$r_artist</OPTION>";
> }
hier ...
und dann
$option_block .= '<option value="' . $row[0] . $selected .'">'.$row[0] .'('
. $row[1] . ")\n";
$selected = '';
> }
>
>
Der Trick mit dem $selected macht das etwas übersichtlicher, damit
wird das erste Ergebnis vorbelegt, alle andern nicht mehr.
Viele Grüße, Mathias
php::bar PHP Wiki - Listenarchive