der_Held: selectiert abfrage, nur nr 1, 4,6,7,n

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

  1. 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

  2. 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

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. 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";

  3. Hallo

    ich habe es mit "implode" und dem "IN(operator)" hinbekommen.

    Gruß
    Daniel