error in mysql statement mit variablen

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

  • error in mysql statement mit variablen

    hallo bin am php buch lesen und bau ein bsp. nach, doch leider ohne erfolg

    habe ein html formular

    PHP-Code:
    <html>
    <
    body>
    Anzeige der Personen mit einem Gehalt zwischen:
    <
    form action "suche.php" method "post">
        <
    input name "ug"Untergrenze<p>
        
    und <p>
        <
    input name "og"Obergrenze<p>
        <
    input type "submit">
        <
    input type "reset">
    </
    form>
    </
    body>
    </
    html
    mit suche.php

    PHP-Code:
    <html>  <body>    
    <?php     mysql_connect(localhost,root);     mysql_select_db("test");       
    $sqlab " SELECT gehalt FROM personen WHERE gehalt >=" $_POST['ug'] . " AND gehalt <=" $_POST['og'];         
    $res mysql_query($sqlab);     
    $num mysql_num_rows($res);     
    if (
    $num==0) echo "keine passenden Datensätze gefunden";       
    while (
    $dsatz mysql_fetch_assoc($res))    
     {        echo 
    $dsatz["name"] . ", "           $dsatz["gehalt"] . "<br>";     }       
    echo 
    mysql_error();  ?>    </body>  </html>

    doch ich bekomme einen fehler

    You have an error in your SQL syntax;
    check the manual that corresponds to your
    MySQL server version for the right syntax
    to use near 'AND gehalt <=' at line 1
    gebe ich die abfrage in den query browser mit werten statt variablen geht es einwandfrei. verstehe ich nicht

    gruß
    Zuletzt geändert von dcdieci; 28.06.2007, 13:11.

  • #2
    http://www.php-resource.de/forum/sho...threadid=50454

    Kommentar


    • #3
      error_reporting einstellen, fehler beheben.

      deine input felder vermissen das attribut "type". der html code ist völlig kaputt. wo hast du denn sowas gelernt?

      Kommentar


      • #4
        thomas theis einstieg in php5
        galileo computing s.225

        so ich habe nun das mysql vereinfacht und die variable mal in einfache anführungszeichen gesetzt, dann verschwindet schonmal der mysql error

        PHP-Code:
           $sqlab " SELECT gehalt,vorname FROM personen WHERE gehalt LIKE '$u'" 
        aber ich bekomme keine datensätze angezeit
        obwohl ich genau weiß, dass einer z.b. mit 10000 existiert

        html form habe ich auch auf ein feld beschränkt und gebe dort 10000 ein --> nix passiert

        PHP-Code:
        <html
         <
        body>  Anzeige der Personen mit einem Gehalt zwischen:  
        <
        form action "suche.php" method "post">      
        <
        input name "u"Untergrenze<p>     
         <
        input type "submit">      
        <
        input type "reset">  
        </
        form
         </
        body>  
        </
        html
        Zuletzt geändert von dcdieci; 28.06.2007, 13:11.

        Kommentar


        • #5
          was hast du an meinem letzten post nicht verstanden?
          warum fängst du an, mit LIKE unnötigerweise herumzuraten?

          Kommentar


          • #6
            PHP-Code:
                <input type="text" name "u"Untergrenze<p
            das ändert auch nichts

            Kommentar


            • #7
              ist $u überhaupt gefüllt? ich meine, wurde der wert auch übertragen? evtl. ein global_vari-rpoblem wegen register globals.

              probier mal:

              PHP-Code:
              $sqlab = ("SELECT gehalt,vorname FROM personen WHERE gehalt LIKE='".$_POST['u']."'"); 

              Kommentar


              • #8
                da bekomme ich dann

                Code:
                You have an error in your SQL syntax; 
                check the manual that corresponds to your MySQL server version for the right syntax to 
                use near '=''' at line 1
                register globals ist auf off
                Zuletzt geändert von dcdieci; 28.06.2007, 13:12.

                Kommentar


                • #9
                  ach was mache ich, sry. ist spät

                  PHP-Code:
                  $sqlab " SELECT gehalt,vorname FROM personen WHERE gehalt LIKE '".$_POST['u']."%'" 
                  EDIT

                  Also den hier genauso, hatte nur das Gleichzeichen zu viel drin^^

                  PHP-Code:
                  $sqlab = ("SELECT gehalt,vorname FROM personen WHERE gehalt LIKE '".$_POST['u']."%'"); 
                  Zuletzt geändert von .raDDadil; 28.06.2007, 01:49.

                  Kommentar


                  • #10
                    fein das funktioniert.
                    auch ohne type="text"
                    aber das mysql statement ist natürlich nicht so clever, da wenn ich 10 eingebe wir mir mit dem wildcard am ende auch alles größer als 100 ausgespuckt..

                    Kommentar


                    • #11
                      Original geschrieben von penizillin
                      http://www.php-resource.de/forum/sho...threadid=50454
                      Würdest du das wohl jetzt bitte befolgen?!

                      Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                      bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                      Wie man Fragen richtig stellt

                      Kommentar


                      • #12
                        Original geschrieben von dcdieci
                        fein das funktioniert.
                        auch ohne type="text"
                        dass es falsch ist, wurde bereits erwähnt?

                        aber das mysql statement ist natürlich nicht so clever, da wenn ich 10 eingebe wir mir mit dem wildcard am ende auch alles größer als 100 ausgespuckt..
                        was schätzst du denn, was LIKE bewirkt? aus welchem unerklärlchen grund bist du von der query abgewichen, mit der du angefangen hast?

                        Kommentar


                        • #13
                          dass es falsch ist, wurde bereits erwähnt?
                          nein

                          Kommentar


                          • #14
                            Wenn du jetzt nicht endlich deinen !%§$-Code umbrichst, wie es in den Regeln steht, auf die du jetzt mehrfach hingewiesen wurdest - dann wandert der Thread auf den Müll.
                            I don't believe in rebirth. Actually, I never did in my whole lives.

                            Kommentar


                            • #15
                              so bin jetzt nun mit einem anderen beispiel weitergekommen.
                              und zwar habe ich dieses html form

                              PHP-Code:
                              <form action "hdd.php" method "post">        
                              <
                              select name="manu">         
                              <
                              option value="fujitsu" selected>            fujitsu </option>         
                              <
                              option value="quantum">            quantum </option>         
                              <
                              option value="seagate">            Seagate </option>      </select><p>        
                              <
                              input type="submit">      
                              <
                              input type="reset"
                              und

                              diese abfrage
                              PHP-Code:
                                 $sqlab "select * from hdd where hersteller 
                              = '" 
                              $_POST["manu"] . "'"
                              das funktioniert sogar.
                              aber sobald ich versuche $_POST nicht zu verwenden und die abfrage auf folgendes ändere funktioniert es nicht mehr

                              PHP-Code:
                              $sqlab "select * from hdd where hersteller = $manu " 
                              hängt das mit globalen variablen zusammen oder an was liegt das ?
                              was mich zudem wundert ist ,dass versucht wird $manu ohne ' ' abzufragen, das funktioiert auch im query browser nicht
                              danke für hilfe

                              Kommentar

                              Lädt...
                              X