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