error in mysql statement mit variablen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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ß
    Last edited by dcdieci; 28-06-2007, 12:11.

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

    Comment


    • #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?

      Comment


      • #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
        Last edited by dcdieci; 28-06-2007, 12:11.

        Comment


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

          Comment


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

            Comment


            • #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']."'"); 

              Comment


              • #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
                Last edited by dcdieci; 28-06-2007, 12:12.

                Comment


                • #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']."%'"); 
                  Last edited by .raDDadil; 28-06-2007, 00:49.

                  Comment


                  • #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..

                    Comment


                    • #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

                      Comment


                      • #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?

                        Comment


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

                          Comment


                          • #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.

                            Comment


                            • #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

                              Comment

                              Working...
                              X