cybton.com
Über uns | Jobs | Werbung | Sitemap | AGB | Impressum | Hilfe ?
 Kostenlos anmelden)
Forum
Aktuellste Beiträge
Forenregeln

Community
BB-Codes
Tags
Chat
Suche (Web)
Wer ist online?
Top-User

Basar


Statistik
Mitglieder gesamt: 68122
Mitglieder online: 8
Gäste online: 6
mehr...

Anzeige
Forum » Forum: Website & Webprogrammierung » Thread: PHP: Dynamisches Drop Down Menü - Auslesen der Datenbank

Thread: PHP: Dynamisches Drop Down Menü - Auslesen der Datenbank

Tags: MySQL , menü
Seite 1 von 212

02.05.2008 19:44 Uhr

 

Status: offline
Hallo,

ich möchte gerne ein dynamisches Dropdown Menü realisieren. Die Auswahlmöglichkeiten möchte ich zunächst aus einer Datenbank auslesen, jedoch klappt dies noch nicht.

Das Menü soll Kategorien darstellen und ich habe mir folgendes Vorgehen überlegt:
  • Auslesen, wie viele Kategorie-Datensätze es gibt (alle haben eine ID mit auto_increment)
  • Mittels for-Schleife die Optionen einfügen


Mein bisheriger Code:
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Kategorie: <select name="kategorie">
<?php
//Auslesen wieviele Kategorien vorhanden sind
$query = "SELECT * FROM kategorie";
$sql = mysql_query($query);
$anzahl = mysql_num_rows($sql);
for ($id = 1; $id <= anzahl; $id++)
{
  // Wert für id auslesen
  $query = "SELECT Kategorie FROM kategorie WHERE id = ".$id;
  $sql = mysql_query($query);
  $kategorie = mysql_result($sql);
  echo "<option value=\"$id\">".$kategorie."</option>";
}
?>
</select>
Als Endergebnis wird allerdings ein leeres Dropdown-Menü angezeigt. Bin noch Neuling in Php & mysql, kann daher auch sein, dass das hier völliger Schwachsinn ist..

Vermute den Fehler allerdings im ersten Teil, beim Auslesen der Datensatzanzahl, da
PHP:
1
echo $anzahl
kein Ergebnis brachte.

Vielen Dank im voraus!
02.05.2008 19:56 Uhr

 

Status: offline
Hallo

Mit for-Schleifen bin ich nicht sonderlich bewandert ... deswegen meinen Vorschlag einer Whileschleife =) aber falls du das nicht willst - sorry!
php:
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<select name="kategorie">
<?php
 
      $select = "SELECT * FROM kategorie";
      $query = mysql_query($select);
      $row = mysql_fetch_array($query);
      while ($array = mysql_fetch_array($query)) {
            echo '<option value="'.$array["id"].'">'.$array["kategorie"].'</option>';
      }
 
?>
</select>
Gruß

//EDIT
Zu dem Thema Auslesen der Datensätze aus der Datenbank:
PHP:
1
2
3
4
5
6
7
8
<?php
 
      $count_kategorie_select = "SELECT COUNT(*) FROM kategorie";
      $count_kategorie_query = mysql_query($count_kategorie_select);
      $count_kategorie = mysql_fetch_array($count_kategorie_query);
      echo $count_kategorie[0];
 
?>
1 mal bearbeitet
___________________________
Meine CyDOTs
02.05.2008 20:16 Uhr

 

Status: offline
Hallo,

thx, das sieht schonmal besser aus. Allerdings funktioniert das noch nicht so ganz. Immerhin ändert sich die Anzahl der Auswahlmöglichkeiten schonmal (bei 3 Einträgen, 2 Möglichkeiten). Allerdings sind diese leer bzw. es fehlt halt der Kategoriename

Außerdem kann ich das noch nicht so ganz nachvollziehen:
PHP:
1
2
3
4
5
6
<?php
$select = "SELECT * FROM kategorie";
$query = mysql_query($select);
$row = mysql_fetch_array($query);
while ($array = mysql_fetch_array($query)) {
echo $array["id"];
Wofür ist das $row, wenn es nirgendwo weiter benutzt wird!?
2 mal bearbeitet
02.05.2008 20:20 Uhr

 

Status: offline
Sorry ... hatte die Variable nochmal umbenannt aber dann vergessen die Zeile wegzumachen ...
So muss es aussehen!
php:
1
2
3
4
5
6
7
8
9
10
11
<select name="kategorie">
<?php
 
      $select = "SELECT * FROM kategorie";
      $query = mysql_query($select);
      while ($array = mysql_fetch_array($query)) {
            echo '<option value="'.$array["id"].'">'.$array["kategorie"].'</option>';
      }
 
?>
</select>
Gruß

//EDIT
Bin ich gerade nicht fähig den BB-Code zu benutzen Oo

Ah ne^^ Es sieht bei allen Codes so aus - ok^^
3 mal bearbeitet
___________________________
Meine CyDOTs
02.05.2008 20:30 Uhr

 

Status: offline
Also die Anzahl der Möglichkeiten stimmt jetz...

der Quelltext sieht nach dem compilen allerdings so aus:
PHP:
1
2
3
Kategorie: <select name="kategorie">
<option value=""></option><option value=""></option>
<option value=""></option><option value=""></option></select>
1 mal bearbeitet
02.05.2008 20:34 Uhr

 

Status: offline
OK dann geht das mit den Variablen im Echo nicht wenn das Echo mit den ' gemacht is ... (einfaches Hochkomma) Probier das mal^^
php:
1
2
3
4
5
6
7
8
9
10
11
12
<select name="kategorie">
<?php
 
      $select = "SELECT * FROM kategorie";
      $query = mysql_query($select);
      $row = mysql_fetch_array($query);
      while ($array = mysql_fetch_array($query)) {
            echo "<option value=\"$array[\"id\"]\">$array[\"kategorie\"]</option>";
      }
 
?>
</select>
Gruß
___________________________
Meine CyDOTs
02.05.2008 20:39 Uhr

 

Status: offline
PHP:
1
2
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING 
or T_VARIABLE or T_NUM_STRING in C:\xampp\htdocs\fw_einsatz\install_4.php on line 30
So geht es auch nicht, wieder leeres DropDownMenü:
PHP:
1
echo "<option value=\"".$array["id"]."\">".$array["kategorie"]."</option>";
1 mal bearbeitet
02.05.2008 20:42 Uhr

 

Status: offline
id
und
kategorie
Das sind die Felder aus der Datenbank btw ... Also das war nur von mir so ausgedacht ... vielleicht hast du sie nur anders benannt!

Gruß

//EDIT
Deswegen kann es von Vorteil sein, wenn man die Datenbankkonstellation mit dazu schreibt  :roll: 
1 mal bearbeitet
___________________________
Meine CyDOTs
02.05.2008 20:48 Uhr

 

Status: offline
Die Felder heißen bei mir eig auch gleich. Die Groß- und Kleinschreibung habe ich anfangs nicht genau gehabt, mit exakter Schreibweise ging es jedoch trotzdem nicht.

Auch wenn ich die Lösung noch nich ganz verstanden habe, folgendes geht jedenfalls:
+ PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Kategorie: <select name="kategorie">
<?php
 
      $select = "SELECT * FROM kategorie";
      $query = mysql_query($select);
      while ($ds = mysql_fetch_object($query)) {
        $id = $ds -> ID;
        $name = $ds -> Kategorie;
            echo "<option value=\"".$id."\">".$name."</option>";
 
 
      }
 
?>
</select>
Vielen lieben Dank für deine Mühe, hast mich ein gutes Stück weiter gebracht :)
02.05.2008 21:07 Uhr

 

Status: offline
^^
Dann wäre es glaube ich einfach
$array["ID"]
und
$array["Kategorie"]
gewesen^^ Groß- und Kleinschreibung spielt eine Rolle ^^

Gruß
___________________________
Meine CyDOTs
Seite 1 von 212
Ähnliche Threads Forum Ähnlichkeitsgrad
 [gelöst]php menü aus db Website & Webprogrammierung 2
 [gelöst]Javascript Mysql connecten Softwareprogrammierung 2
 [gelöst] Fragen bezüglich MySQL Website & Webprogrammierung 1
 [gelöst] Problem: Menü nach best. Zeit ausblenden Website & Webprogrammierung 1
 FTP wo und wie? Fragen zu cybton.com 1
 Mysql zwei Tabellen verbinden Website & Webprogrammierung 1
 [Problem] MySQL mehrere Einträge gleichzeitig verändern geht nicht Website & Webprogrammierung 1
nach obennach oben

Copyright © 2008 cybton-network

Google
Partner: #Musik - Dein Internetradio - nexem. - .wir machen news - Your-Book.net - Dein kostenloses Gästebuch
ANEXIA - PHP Entwicklung - Dockers - s.Oliver Schuhe - Think Schuhe - der eigene Weg - Dorfen - Paul Green Schuhe - Bequeme Geox - Web-Entwicklung