Select/Combobox mit Daten füllen

Hallo mal wieder :smile:,

ich versuche ein select mit Daten aus meiner MySql-DB zu füllen -->

$dbverbindung = mysql\_connect ($host, $user, $password);

$result = mysql\_query("SELECT \* FROM $tabelle;");
$options = "";

while ($ausgabe = mysql\_fetch\_array ($result))
{
 $options = "".$ausgabe[Nachname]. " " .$ausgabe[Vorname]."\n";
}

echo "\n";
echo $options;
echo "\n";


mysql\_close ($dbverbindung)

Klappt im Grunde ganz gut, nur! nur wir mir die select nur mit dem letzten Eintrag der Tabelle gefüllt.

Hat jemand ne Idee wo der Fehler liegen kann?

Gruß Rolf

Hallo Rolf,

Hat jemand ne Idee wo der Fehler liegen kann?

ja absolut.

$options ist eine Variable und kann somit immer nur einen Wert aufnehmen, was du brauchst ist ein Array.
Sonst überschreibst du den Inhalt in deiner Schleife einfach nur an statt ihn zu stapeln.

Informiere dich doch zu diesem Thema in den vielen Tutorials die es zu PHP gibt.

http://tut.php-quake.net/de/array.html

Moin,

seltsam ich gebs doch in einem Array aus --> while ($ausgabe = mysql_fetch_array ($result))

Ansonsten wüsst ich nicht wo ich noch einen Array angeben sollte.

Gruß Rolf

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ich habe doch darauf hingewiesen das $options kein array ist.
du speicherst sehr wohl die felder vom arrray $ausgabe in dieser variable aber du tust es in einer schleife. und $options ist dann nach dem durchlauf immer mit dem letzten wert gefüllt.

du müsstest es in $option[] = $ausgabe[‚whatever‘] umschreiben
und die ausgabe ebenfalls in eine schleife packen

<?php foreach($options as $o)<br />{
 echo $o;
}
?\>
1 Like

Jetzt hab ichs - klar muss ja auch in die Schleife

$dbanfrage = "SELECT \* from $tabelle";
$result = mysql\_db\_query ($dbname, $dbanfrage, $dbverbindung);
$options = "";
echo "\n";
while ($ausgabe = mysql\_fetch\_array ($result))
{
 $option = "".$ausgabe[Nachname]. " " .$ausgabe[Vorname]."\n";
echo $option;
}
echo "\n";

Danke dir!

Gruß Rolf

Ja so geht es auch ( :
da brauchst du aber auch keine variable mehr dazwischen die es speichert sondern kannst es direkt mit echo ausgeben.

Servus nochmal,

ich hätte da noch ne kleine Frage.
Hoffe du kannst mir weiterhelfen.

Wie stelle ich es an, die in der Select-Box aufgerufenen Datensatz (es wird ja die Id mitübergeben) aus meiner SQL-DB zu löschen?

Hast du da ne Idee zu?

Gruß Rolf

Hallo rolf,

ich weiss nicht ob man es „idee“ nennen kann, ich verstehe nämlich nicht wo genau dein Problem liegt?

die übergebene id wertest du mit $_POST aus , und dann setzt du ein query gegen deine datenbank ab

sowas wie

DELETE FROM tabelle WHERE id = 10

also an welcher stelle kommst du nicht weiter?

Und es wäre auch sinnvoll für jede frage einen eigenen thread zu starten weil suchende nicht erwarten unter dem problem x eine lösung für problem b zu finden.

Hi,

ja, sicher wäre besser n neuen aufzumachen.

Nur noch kurz
Ich habe eben

if (isset($\_POST["loeschen"])) { 

und dann eben

{
DELETE from $tabelle WHERE id = $ausgabe['Id']
}

Ich weiss wohl das es soch nienixniemals gehen kann, nur die Richtugn wie ich nun weitergehen müsste würde mir schon reichen.

Gruß Rolf

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Das ist vom ansatz schon fast richtig, du musst du dir nur nochmal die sql grundlagen in php aneignen.

um mit der datenbank „zu sprechen“ brauchst du eine verbindung, und dann musst du dein SQL statement gegen die datenbank werfen das wird „query“ genannt.

Hier findest du gute Beispiele:
http://tut.php-quake.net/de/mysql-php.html

$sql= "DELETE FROM tabelle WHERE id = ".$\_POST['id'];
mysql\_query($query);

so ungefähr, der code wird aber nicht funktionieren du musst noch den beispiel entsprechend anpassen.

Ok, ich check das mal :smile:

Aber warum $_POST? das versteh ich nicht wirklich
Oder soll ich erst lesen? :smile:

Gruß Rolf

hö?
Du hast doch selber $_POST geschrieben ?

im diesem globalen array werden die verschickten formulardaten gespeichert (also auch die ID deiner combox) , aber ja, erstmal lesen ( :

1 Like

NUR ZUR INFO…
Habs nun so hinbekommen ->

<?php error_reporting(E_ALL);<br />

$host = "localhost";
$user = "user";
$password = "password";
$dbname = "dbname";
$tabelle ="tabelle";

$dbverbindung = mysql\_connect ($host, $user, $password);

$dbanfrage = "SELECT \* from $tabelle";
$result = mysql\_db\_query ($dbname, $dbanfrage, $dbverbindung);
$options = "";
echo "<select name="Mitglieder">\n";<br>while ($ausgabe = mysql_fetch_array ($result))<br>{<br> $option = "".$ausgabe['Id']. " " .$ausgabe['Vorname']." ".$ausgabe['Nachname']. "\n";<br> echo $option;<br>}<br>echo "\n"; <br><br>if (isset($_POST["loeschen"])) { <br>$abfrage_loeschen = sprintf('DELETE from $tabelle WHERE id = %u',$tabelle,$ausgabe['Id'])or die( mysql_error() ); <br> <br>} <br><br>mysql_close ($dbverbindung)</select>

So klappt es!

Gruß Rolf