Einzelner Wert aus MYSQL-DB als Zahlenauswahlliste (Dropdownmenu) darstellen lassen

dalion

Mitglied
Hallo zusammmen!

Ich habe folgendes Problem:

Ein Nutzer meiner zukünftigen Homepage kann ein Angebot erstellen und maximale Stückzahl die er anbietet festlegen (mehr hat er nicht im Angebot).

Z.b. Artikel "A", 5 Stück (verfügbar).

Jetzt soll diese eingetragene Stückzahl ("5") auf der Homepage als Dropdownmenu erscheinen und zwar 1,2,3,4,5. So das der Käufer die Stückzahl seines Kaufs hier auswählen kann (Natürlich ist der DB-Wert (5) der Maximalwert, danach ist das Lager leer).

Mit welcher Funktion kann ich den eingetragenen Wert in eine Auswahlrange (von1-5) für die Homepage umwandeln. Das muss ja leider auch dynamisch sein, da jeder Anbieter die Möglichkeit hat bei seinem Angebot eine andere Maximalzahl anzugeben bzw. der Wert im Lager sich nach jedem Einkauf um die eingekaufte Menge ändert.

Vielen Dank im Voraus!
 
mit einer for-Schleife

PHP:
$max = 5; //kommt normalerweise aus der DB

echo '<select name="menge" size="1">';
for($i=1; $i <= $max; $i++){
    echo "<option>{$i}</option>";
}
echo '</select>';
 
Dank für die schnelle Antwort!

Habe das mal übernommen und eine Abfrage für den dynamischen maximalwert hinzugefügt. Allerdings gibt er mir nun bei jedem Angebot eine Range von 1 bis 8 an, obwohl nur drei Stück in der DB hinterlegt sind.

Ich habe noch nicht ganz verstanden was das mit dem i++ aus sich hat addiert er da jeweils immer eins hinzu?

Hier mal der Code:

PHP:
<?php
session_start();
// Seiten-Parameter
$title = 'Angebotsdetails';
// Seiten-Parameter ENDE
include( 'inc/db_connect.inc.php' );
include( 'inc/header.inc.php' );
include( 'inc/navi.inc.php' );
$id = $_GET['id'];
$abfrage = "SELECT * FROM angebote Where id_angebot = '".mysql_escape_string($id)."'";
$ergebnis = db_query('db_boeker', $abfrage);

$question = "SELECT anzahl_mitfahrer FROM angebote Where id_angebot = '".mysql_escape_string($id)."'";
$max = db_query('db_boeker', $question);

$daten=mysql_fetch_array($ergebnis);
?>
  ID: <?php echo $daten['id_angebot'] ?> <a href="buchen.php?id=<?php echo $daten['id_angebot'];?>">buchen</a><br>
  Anbieter: <?php echo $daten['anbieter']?><br>
  Von <?php echo $daten['startstadt']?><br>
  nach <?php echo $daten['zielstadt']?><br>
  am <?php echo $daten['datum']?><br>
  um <?php echo $daten['startzeit']?><br>
  Anzahl an m&ouml;glichen Mitfahreren:  <?php echo '<select name="menge" size="1">';
  for($i=1; $i <= $max; $i++){echo "<option>{$i}</option>";}
  echo '</select>';?><br>
  Fahrtkosten: <?php echo $daten['fahrtkosten']?><br>
  Raucher-PKW?:   <?php echo $daten['raucher']?><br><br>
<?php
  include( 'inc/footer.inc.php' );
?>
 
ist logisch.
Das $max liest du einmalig aus der Tabelle aus. Dabei nimmst du den ersten Datensatz.
Den ganzen folgenden Teil kannst du streichen
PHP:
//wird nicht gebraucht
$question = "SELECT anzahl_mitfahrer FROM angebote Where id_angebot = '".mysql_escape_string($id)."'";
$max = db_query('db_boeker', $question);

Du liest ja bereits alle Felder aus angebote aus und da ist auch das Feld anzahl_mitfahrer auch mit dabei
PHP:
//direkt auf anzahl_mitfahrer zugreifen
  for($i=1; $i <= $daten['anzahl_mitfahrer']; $i++){echo "<option>{$i}</option>";}
 
Zurück