[SQL allgemein] Was mache ich bei der Abfrage falsch?

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

  • [SQL allgemein] Was mache ich bei der Abfrage falsch?

    Ich habe eine Tabelle mit folgenden Spalten:
    name, plz, ort, strasse, telefon, kanton

    Ich will mir nur die Adressen ausgeben lassen wo der Kanton Aargau lautet.

    Fehler: Unknown column 'Aargau' in 'where clause'

    Weiß jemand Rat?



    PHP-Code:
    // Versuchen, die DB-Verbindung herzustellen
    if ($verbindung mysql_connect ($servername$benutzer$passwort)) {
        echo 
    "";
    } else {
        echo 
    "Der Verbindungsversuch zur DB ist fehlgeschlagen! " mysql_error(); 
        exit();
    }

    // Die Datenbank auswählen
    if (!mysql_query ("USE $datenbank;")) {
        echo 
    "Die Datenbank konnte nicht ausgewählt werden: " mysql_error();
        exit();
    } else {
        echo 
    "";
    }

    var_dump($_POST);    

    // Variable definieren

       
    $eingegeben 'Aargau';


    // Die Tabelle adressen auslesen


       
    $anfrage "SELECT name, plz, ort, strasse, telefon, kanton FROM adressen WHERE kanton= $eingegeben;";

    if (!(
    $ergebnis mysql_query($anfrage))) {
        echo 
    "Die Anfrage ist fehlgeschlagen! " mysql_error();
        exit();
    } else {
        echo 
    "";
    }



    // Die Anzahl der Datensätze (Zeilen) zählen
    $anzahl_zeilen mysql_num_rows($ergebnis);
    echo 
    "Es wurden <B>$anzahl_zeilen</B> Adressen gefunden.<P>"



    // Den Kopf der HTML-Tabelle generieren
    echo "<TABLE BORDER=\"3\">";
    echo 
    "<TR>";
    echo 
    "<TD BGCOLOR=\"#BBBBBB\"><B>Name der Firma</B></TD>";
    echo 
    "<TD BGCOLOR=\"#BBBBBB\"><B>PLZ</B></TD>";
    echo 
    "<TD BGCOLOR=\"#BBBBBB\"><B>Ort</B></TD>";
    echo 
    "<TD BGCOLOR=\"#BBBBBB\"><B>Straße</B></TD>";
    echo 
    "<TD BGCOLOR=\"#BBBBBB\"><B>Telefon</B></TD>";
    echo 
    "<TD BGCOLOR=\"#BBBBBB\"><B>Kanton</B></TD>";
    echo 
    "</TR>";

    // Alle Zeilen aus der DB holen 
    // und in die HTML-Tabelle einfügen
    while ($zeile mysql_fetch_object($ergebnis)) {
        echo 
    "<TR>";
        echo 
    "<TD>$zeile->name</TD>";
        echo 
    "<TD ALIGN=\"center\">$zeile->plz</TD>";
        echo 
    "<TD>$zeile->ort</TD>";
        echo 
    "<TD>$zeile->strasse</TD>";
        echo 
    "<TD>$zeile->telefon</TD>";
        echo 
    "<TD>$zeile->kanton</TD>";
        echo 
    "</TR>";
    }

    // Das Ende der HTML-Tabelle generieren
    echo "</TABLE>";

    // Die Verbindung zur Datenbank schließen
    mysql_close($verbindung); 

  • #2
    Grunlegende Syntax

    WHERE kanton = "Aargau"

    Kommentar


    • #3
      Nein, das war es nicht...
      Funktioniert immer noch nicht

      Kommentar


      • #4
        GANZ sicher das ein datensatz mit diesem Wort existiert???
        Gruß
        Uzu

        private Homepage

        Kommentar


        • #5
          ändere mal "$eingegeben; " in "$eingegeben" (im select)

          Kommentar


          • #6
            Original geschrieben von KaydasEi
            Nein, das war es nicht...
            Dann zeig mal, wie es jetzt aussieht!

            Funktioniert immer noch nicht
            Das ist KEINE Problembeschreibung!!! usw.... Sag statt dessen bitte die aktuelle Fehlermeldung o.ä.

            Kommentar


            • #7
              Original geschrieben von UzumakiNaruto
              GANZ sicher das ein datensatz mit diesem Wort existiert???
              Laut der Fehlermeldung wird ja nicht mal nach diesem Wort in der DB gesucht.
              Original geschrieben von dunixphp
              ändere mal "$eingegeben; " in "$eingegeben" (im select)
              Gehört zwar definitiv nicht dahin, sollte aber AFAIK ignoriert werden. Aber wie du schon sagst, zu suchen hats dort nichts.

              Kommentar


              • #8
                Immer noch die selbe Fehlermeldung

                Unknown column 'Aargau' in 'where clause'

                Komisch ist, wenn ich als Variable eine Zahl angebe und nicht im Kanton sondern in der Spalte plz suche, dann funktioniert alles wunderbar.
                Ich wechsele nur die Variable von einer Zahl in Text (4133 nach Aargau) und in der select-Anweisung von plz nach kanton.

                Ich weiß echt nicht mehr weiter.

                Kaydas Ei

                Kommentar


                • #9
                  Dir fehlen 100% die Anführungszeichen, wie TobiaZ von Anfang an sagte.
                  Setze $kanton mal in (in deinem Fall natürlch einfache) Anführungszeichen und wenn das nicht funktioniert, poste den Quelltext nochmal.

                  Kommentar


                  • #10
                    PHP-Code:
                    $anfrage "SELECT ... WHERE kanton = '".mysql_real_escape_string($eingegeben)."'"

                    Kommentar


                    • #11
                      Es hat geklappt

                      Vielen Dank

                      Die Lösung von onemorenerd hat auf Anhieb geklappt.

                      Super Forum, hier wird einem sehr scnell geholfen.

                      KaydasEi

                      Kommentar


                      • #12
                        Die Lösung von onemorenerd hat auf Anhieb geklappt.
                        Seine Lösung war nur eine Ergänzung zu dem was TobiaZ bereits in seinem ersten Posting meinte
                        Grunlegende Syntax

                        WHERE kanton = "Aargau"
                        Ob du jetzt mysql_real_escape_string() verwendest oder nicht ist ziemlich Banane. Wichtig waren die Anführungszeichen, welche du bei deiner Ursprungsquery nicht hattest.

                        Gruss

                        tobi
                        Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                        [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                        Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                        Kommentar


                        • #13
                          Re: Es hat geklappt

                          Original geschrieben von KaydasEi
                          Super Forum, hier wird einem sehr scnell geholfen.
                          Damit das so bleibt, lies die nächsten Male aber genauer zu und beschreibe genau was nicht funktioniert. TobiaZ hatte die Lösung wie gesagt schon von Anfang an.

                          Kommentar


                          • #14
                            Re: Es hat geklappt

                            Original geschrieben von KaydasEi
                            Super Forum, hier wird einem sehr scnell geholfen.
                            Du hattest die Lösung "erst" nach 20 Stunden, obwohl sie eigentlich schon nach 10 Minuten da war. Das wäre schnell gewesen.

                            Kommentar


                            • #15
                              @KaydasEi
                              Wenn du nochmal diese Thread lesen solltest, dann schau dir auch mal an was mysql_real_escape_string bewirkt.

                              Und schau vieleicht mal in diese pdf rein, dass dauert nur 10min und erspart dir später arbeit.

                              http://www.hardened-php.net/articles...pulationen.pdf

                              Kommentar

                              Lädt...
                              X