mediengestalter.info
FAQ :: Mitgliederliste :: MGi Team

Willkommen auf dem Portal für Mediengestalter

Aktuelles Datum und Uhrzeit: Fr 29.03.2024 16:37 Benutzername: Passwort: Auto-Login

Thema: [PHP] Selectbox nach optgroup gruppieren vom 27.01.2008


Neues Thema eröffnen   Neue Antwort erstellen MGi Foren-Übersicht -> Programmierung -> [PHP] Selectbox nach optgroup gruppieren
Seite: 1, 2  Weiter
Autor Nachricht
maffy
Threadersteller

Dabei seit: 14.01.2006
Ort: Bad Bocklet
Alter: 50
Geschlecht: -
Verfasst So 27.01.2008 10:28
Titel

[PHP] Selectbox nach optgroup gruppieren

Antworten mit Zitat Zum Seitenanfang

Ich möchte eine Selectbox erstellen die erst den Kursort anzeigt und darunter dann die jeweiligen Kurse im Ort.
Irgendwie klappt das nicht so.

Code:

$sqlkursart =" SELECT id,betreff,wo, date_format(von, '%d.%m.%Y') _von, date_format(bis, '%d.%m.%Y') _bis
                 FROM {$pfx}kurse ";
   $reskursart = mysql_query($sqlkursart);
      
   $alt = "0";   
   
   $select_kursart  .= "<select name=\"wo\"> ";
   $select_kursart  .= "<option disabled selected>Bitte auswählen:</option>";
   
      if ( $row = mysql_fetch_array($reskursart) ){
   
         $i = 0;
         do
         {
      
            $row_number = $i + ( $num_start + 1 );

            $id     = $row['id'];
            $betreff = $row['betreff'];
            $kursort = $row['wo'];
      
            if($kursort != $alt){
               $select_kursart  .= "<optgroup label=\"$kursort\">";
               $select_kursart  .= "<option>$kursort $betreff</option>";
               
            }
                  
            if ($alt = $kursort);   
               $select_kursart  .= "<option>$kursort $betreff</option>";            
            $i++;
         }
         
      while ( $row = mysql_fetch_array($reskursart) );
      mysql_free_result($reskursart);
      
      $select_kursart  .= "</optgroup></select>";
      
   }      


Hoffe das mir jemand helfen kann
MFG Maffy
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Impigra

Dabei seit: 17.05.2006
Ort: Egenhofen
Alter: 45
Geschlecht: Männlich
Verfasst So 27.01.2008 15:52
Titel

Antworten mit Zitat Zum Seitenanfang

Ich würde das vorher schon im SQL sortieren lassen... dazu gibt es in der Abfrage die Befehle "ORDER by" oder auch "GROUP by"
Andererseits kannst Du in PHP auch selbstvertändlich Arraywerte sortieren wobei Dir das hier nicht wirklich hilft...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
Anzeige
Anzeige
achwasweisich

Dabei seit: 27.09.2007
Ort: Stuttgarter Raum
Alter: -
Geschlecht: Männlich
Verfasst Mo 28.01.2008 08:18
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Irgendwie klappt das nicht so.

Mit solchen Problembeschreibungen kommt man nirgendwo hin.

Code:
if ($alt = $kursort);   
               $select_kursart  .= "<option>$kursort $betreff</option>";

ist zum einen falsch und zum anderen unschön.
Code:

if ($alt == $kursort) {   
               $select_kursart  .= "<option>$kursort $betreff</option>";
}



Ferner:
Code:
while ( $row = mysql_fetch_array($reskursart) );
      mysql_free_result($reskursart);

was soll das? Kapiere ich nicht.
Willst Du nur eine Zeile holen? Dann benutze LIMIT.
  View user's profile Private Nachricht senden
dastef

Dabei seit: 03.11.2003
Ort: -
Alter: -
Geschlecht: Männlich
Verfasst Mo 28.01.2008 09:14
Titel

Antworten mit Zitat Zum Seitenanfang

achwasweisich hat geschrieben:
Ferner:
Code:
while ( $row = mysql_fetch_array($reskursart) );
      mysql_free_result($reskursart);

was soll das? Kapiere ich nicht.
Willst Du nur eine Zeile holen? Dann benutze LIMIT.


er verwendet ein do{ .. } while() .. *hint*
  View user's profile Private Nachricht senden
maffy
Threadersteller

Dabei seit: 14.01.2006
Ort: Bad Bocklet
Alter: 50
Geschlecht: -
Verfasst Mo 28.01.2008 10:07
Titel

Antworten mit Zitat Zum Seitenanfang

Zitat:
Mit solchen Problembeschreibungen kommt man nirgendwo hin.

Wenn ich das mache zeigt er mir die Daten mehrmals an.


Er soll alle Kurse aus der Datenbank kurse gruppiert nach Ort in einer Selectbox ausgeben.

So wie in manchen PHPBB Foren in der Jumpbox.

Mfg Maffy
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
maffy
Threadersteller

Dabei seit: 14.01.2006
Ort: Bad Bocklet
Alter: 50
Geschlecht: -
Verfasst Mo 28.01.2008 10:14
Titel

Antworten mit Zitat Zum Seitenanfang

Damit Ihr sht was ich mein hab ich das Script mal hochgeladen.
Hier gibt es eine Testversion zu sehen

Mfg Maffy
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
pixelpapst303

Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht: Männlich
Verfasst Mo 28.01.2008 11:12
Titel

Antworten mit Zitat Zum Seitenanfang

maffy hat geschrieben:

Er soll alle Kurse aus der Datenbank kurse gruppiert nach Ort in einer Selectbox ausgeben.


das schreit doch schon mal danach, dass du deine db-abfrage dahingehend schon mal optimierst.

schau mal was man alles mit
group by
machen kann...
  View user's profile Private Nachricht senden Website dieses Benutzers besuchen
achwasweisich

Dabei seit: 27.09.2007
Ort: Stuttgarter Raum
Alter: -
Geschlecht: Männlich
Verfasst Mo 28.01.2008 14:19
Titel

Antworten mit Zitat Zum Seitenanfang

dastef hat geschrieben:
achwasweisich hat geschrieben:
Ferner:
Code:
while ( $row = mysql_fetch_array($reskursart) );
      mysql_free_result($reskursart);

was soll das? Kapiere ich nicht.
Willst Du nur eine Zeile holen? Dann benutze LIMIT.


er verwendet ein do{ .. } while() .. *hint*


Okay, mein Fehler, das do{} hatte ich übersehen. * Wo bin ich? *
  View user's profile Private Nachricht senden
 
Ähnliche Themen select optgroup slider wie gemacht?
Selectbox mit Straßen nach PLZ auswahl
Größe einer Selectbox begrenzen?
Werden Selectbox-Werte von Google berücktsichtigt?
[JS] - Index bzw. Text einer bestimmten Selectbox-Option...
Navigation/ Layer gruppieren
Neues Thema eröffnen   Neue Antwort erstellen Seite: 1, 2  Weiter
MGi Foren-Übersicht -> Programmierung


Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst an Umfragen in diesem Forum nicht mitmachen.