selectiert abfrage, nur nr 1, 4,6,7,n
der_Held
- datenbank
Hallo
ich habe
PHP version : 5.0.4
MySQL version : 4.1.10
Situation:
Ich habe mit einer Abfrage an meine Datenbank mir deren Inhalt ausgeben lassen. Ich möchte nun einzelne Zeilen auswählen und auf einer 2. Seite nur diese anzeigen lassen.
mein Versuch:
ich habe mit einer Checkbox "<input type="checkbox" name="nr" value="<?php echo $row[0]; ?>">" mir die ID der einzelnen daten geben lassen.
und mit GET (vorerst zur besseren Kontrolle für mich) an die zweite Seite geschickt. "...php?nr=1&nr=4&nr&6"
wenn ich dann Abfrage:
$Wert= "$_GET[nr]";
$sql = "SELECT * FROM Tabelle
WHERE (id_nr LIKE $Wert )
bekomme ich nur den letzten Datensatz angezeigt.
ich bin mit meinem Latein am Ende.
Gruß
Daniel
und mit GET (vorerst zur besseren Kontrolle für mich) an die zweite Seite geschickt. "...php?nr=1&nr=4&nr&6"
wenn ich dann Abfrage:
$Wert= "$_GET[nr]";
$sql = "SELECT * FROM Tabelle
WHERE (id_nr LIKE $Wert )bekomme ich nur den letzten Datensatz angezeigt.
ja, weil du in $_GET['nr'] nur 6 drinnen steht
du willst entweder ein array im der variable querystring übergeben oder du willst eine komma-separierte liste in einer variable übergeben
bei der sql-abfrage willst du zudem nicht mit LIKE suchen sondern mit IN(1,4,6) - like ist für eine id nur begrenzt sinnvoll
in erster linie wird dir var_dump($_GET['nr']); helfen
Hi,
ich habe mit einer Checkbox "<input type="checkbox" name="nr" value="<?php echo $row[0]; ?>">" mir die ID der einzelnen daten geben lassen.
und mit GET (vorerst zur besseren Kontrolle für mich) an die zweite Seite geschickt. "...php?nr=1&nr=4&nr&6"
PHP besitzt seit Ewigkeiten einen schwerwiegenden (Konzept-)Bug, durch den die definierten Schnittstellen zum Zugriff auf Parameter diese Werte nicht liefern werden. Wenn ich mich recht erinnere, enthält $_GET['nr'] hierbei nur den Wert 6. Um den Bug zu umgehen, bist Du genötigt, das Eingabefeld "nr[]" zu nennen.
$Wert= "$_GET[nr]";
Was bezweckst Du mit diesen völlig überflüssigen Anführungszeichen, und warum hast Du die benötigten Anführungszeichen um den Namen des Eingabefeldes weggelassen? Die zweite Frage kannst Du ignorieren, wenn Du eine Konstante namens 'nr' definiert hast.
$sql = "SELECT * FROM Tabelle
Warum selektierst Du "*", obwohl das nicht praxistauglich ist?
WHERE (id_nr LIKE $Wert )
Was bezweckst Du mit dem LIKE-Operator?
bekomme ich nur den letzten Datensatz angezeigt.
ich bin mit meinem Latein am Ende.
Die MySQL-Dokumentation ist auf Englisch verfügbar, nicht jedoch auf Latein. Die der Version 5.1 findest Du sogar in deutscher Sprache. Suche nach dem IN-Operator.
Cheatah
echo $begrüßung;
$Wert= "$_GET[nr]";
Was bezweckst Du mit diesen völlig überflüssigen Anführungszeichen, und warum hast Du die benötigten Anführungszeichen um den Namen des Eingabefeldes weggelassen? Die zweite Frage kannst Du ignorieren, wenn Du eine Konstante namens 'nr' definiert hast.
Die einerseits überflüssigen und an anderer Stelle höchstwahrscheinlich fehlenden Anführungszeichen stehen außer Frage. Beachte aber bitte den Unterschied zwischen
echo "A banana is $fruits[banana].";
und
echo "A banana is {$fruits[banana]}.";
Nur im zweiten Fall wird nach einer Konstanten namens banana Ausschau gehalten.
Siehe Strings - Variable parsing und Array do's and don'ts - Why is $foo[bar] wrong?
echo "$verabschiedung $name";
Hallo
ich habe es mit "implode" und dem "IN(operator)" hinbekommen.
Gruß
Daniel