PHP/MySQL in Datalist Variablen aus Datenbank anzeigen lassen (Problem ist nur klein, Lösungsansatz groß ;))?
Hallo zusammen,
ich habe folgenden code:
das Ganze funktioniert auch relativ gut, nur ist das Problem, dass nur die erste Variable (die erste Variable im Label) und das Komma, sowie die vierte Variable (die eigentliche Option) angezeigt werden.
Ich habe schon einiges probiert (mit Punkten usw., jetzt mit den geschweiften Klammern), bisher hat nichts zum gewünschten Ergebnis (Ausgabe aller 3 Variablen nacheinander als Label) geführt.
Ich wäre euch für schnelle Hilfen unglaublich dankbar!
4 Antworten
echo "<option value=\"$row[feldname]\">$row[feldname]</option>";
echo "<option value=\"$row[andererfeldname]\">$row[andererfeldname]</option>";
du kannst auch label nehmen ,wenn es unbeding HTML5 sein soll in kurzform
das gehst du etwas falsch an .
foreach ($pdo->query($sql) as $row)
deine datenbank hat doch nicht die felder 1 2 3 4
und ich kenne es wenn schon in einem string dann ohne die hochkommas . und bestimmt auch keine klammern
da steht doch im beispiel wie es geht
http://php.net/manual/de/pdo.query.php
echo "<option value=\"$row[feldname]\">";
und das heisst nicht label bei options ... woher hast du das ??
Tut mir Leid, aber ich glaube wir reden hier aneinander vorbei ^^
Ich habe in der DB beispielsweise 3 Wörter gespeichert, die ich nebeneinander in einem Option-Feld (als Label) ausgeben lassen will -> die Wörter sind z.B.: Apfel, Banane, Kirsche. In der DB ist noch ein viertes Wort gespeichert, z.B.: Obst (<- die eigentliche Option).
Wenn jmd. zum Beispiel Banane eingibt, steht im input-Feld Obst.
Ich will also die 3 Ergebnisse aus der DB gemeinsam in ein Label schreiben, das klappt auch mit meinem Code, nur eben nicht für alle Ergebnisse, sondern nur das Erste...
Verstehst du, was ich meine?
ja und nein , wenn du nur 1 zeile zurück bekommst dann wird auch nur eine zeile angezeigt . $row ist die zeile und das in [] sind die felder.
also wird es nur eine reihe geben .
ansonsten probier
$query = $pdo->prepare("select name FROM tbl_name");
$query->execute();
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ( $rows as $row) {
echo "<option label=\"$row[1],$rows[2]\">$row[3]</option>";
}
aber was ich überhaupt nicht verstehe warum die labels mit komma getrennt werden und warum du die nicht in anführungstriche hast .
du machst da sachen die so nicht in HTML5 gewollt sind .
syntax ist
https://www.w3schools.com/tags/att\_option\_label.asp
<option label="text">
wenn du mir sagst wo du das so gefunden hast wäre ich dankbar.
wenn du untereinander optionen haben willst , dann gilt , für jedes feld eine eigene option
<option label="Apfel">
<option label="Birne">
also wäre es bei dir dann
entweder 3 mal echo oder das ganze in ein foreach
foreach ($pdo->query($sql) as $row) {
foreach($row as $feldname=>$feldwert) {
echo "<option label=\"$feldwert\">";
}
}
du must bei label auch anführungstriche machen
so wie es im syntax angegeben wird
<option label="text">blablub</option>
also bei dir dann
echo "<option label=\"text\">blablub</option>";
übrigens macht man das bei attributen immer . wir sind ja nciht mehr in 19XX .
btw : nächstes mal schreibst du hin was für eine ausgabe du bekommst , und was du gerne hättest
erklärt hast du es jedenfalls sehr anstrengend . zumal man sich fragt warum solch elementaren fehler gemacht werden .
Danke für deine Hilfe, es klappt nun!
ich weiß, ehrlich gesagt auch nicht, wieso mir ein solcher Fehler unterlaufen ist, entweder liegt das an der Uhrzeit oder an dem Highlighten meines Editors, das sah irgendwie nicht richtig aus ^^
Naja: danke!
Echoe doch den HTML Code als Datei!
Was meinst du damit? Bist du sicher, dass da das Problem liegt?
ok das label hab ich mir selber rausgesucht, HTML5 kurzschreibweise .