Suche nach ID funktioniert nicht für alle IDś

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Suche nach ID funktioniert nicht für alle IDś

    Warum werden die einen Datensätze richtig erkannt, andere nicht?
    Aufgabe ist die Selektion nach Technik oder Motiv meiner Bilder, dazu habe ich folgenden einfachen Code geschrieben:
    Code:
    <?php
    ...
    if (!empty ($_GET))
      $query = "SELECT b.*, m.description AS medium, t.description AS technik FROM bilder b,
    medium m, technik t WHERE b.medium_id = m.id AND b.technik_id = t.id AND
    b.technik_id = " .
            $_GET['sel']      ;
        else
            $query = "SELECT b.*, m.description AS medium, t.description AS technik FROM bilder b,
    medium m, technik t WHERE b.medium_id = m.id AND b.technik_id = t.id AND
    b.technik_id = " . 1;
    // echo $query;
    
    $res = mysql_query($query) or die("Anfrage fehlgeschlagen: " . mysql_error());
    
    $row = mysql_fetch_array($res)
    ?>
    aufgerufen wird das ganze durch folgende Schnipsel:
    Code:
    <li><a href="technik.php?sel=3">KaltnadelRadierung</a></li>
    <li><a href="technik.php?sel=10">&Auml;tzRadierung</a></li>
    <li><a href="technik.php?sel=11">Aquatinta</a></li>
    <li><a href="technik.php?sel=6">Mezzotinto</a></li>
    <li><a href="technik.php?sel=15">Punzenstich</a></li>
    <li><a href="technik.php?sel=16">Vernis mou</a></li>
    das oben auskommentierte echo $query gibt den richtigen Wert aus, aber leider kommt es zu keiner Anzeige der Daten bei 4 von 6 Möglichkeiten, die beiden anderen funktionieren. wobei die letztere nur für ein Bild statt, wie eingegeben 3.
    Was habe ich falsch gemacht?

  • #2
    Vermutlich verwendest du den falschen Spaltentype. Und SQL-Injctions läßt du auch zu.
    Wir werden alle sterben

    Kommentar


    • #3
      Danke für die schnelle Antwort. Aber....

      so eine kurze Antwort und gleich 2 Fragen
      die ..._id ist - ja da war ich ungenau verschieden. einige sind int(15), andere vcar; aber bei beiden Typen habe ich das gleiche Problem, einige werden angenommen, andere nicht.
      welchen Typ muss ich denn nehmen?
      und was bedeutet SQL-Injctions bzw welches Problem kann das verursachen?

      mmmm bin eben doch ein DAU mit nichtmal Halbwissen.

      Kommentar


      • #4
        Zitat von terzart Beitrag anzeigen
        Danke für die schnelle Antwort. Aber....

        so eine kurze Antwort und gleich 2 Fragen
        die ..._id ist - ja da war ich ungenau verschieden. einige sind int(15), andere vcar; aber bei beiden Typen habe ich das gleiche Problem, einige werden angenommen, andere nicht.
        welchen Typ muss ich denn nehmen?
        Für nummerische IDs immer Integer nehmen.

        Zitat von terzart Beitrag anzeigen
        und was bedeutet SQL-Injctions bzw welches Problem kann das verursachen?
        Das ist eine der meist ausgenützten Sicherheitslücken. Zudem können Fehler entstehen, wenn du Texte mit bestimmten Zeichen (zB. Hochkomma) in die Datenbank speichern willst.

        PHP: SQL Injection - Manual
        SQL-Injection - Wikipedia

        Zitat von terzart Beitrag anzeigen
        mmmm bin eben doch ein DAU mit nichtmal Halbwissen.
        Aber für Grundlagenunterricht sind Foren üblicherweise nicht zuständig.

        Kommentar

        Lädt...
        X