PROBLEM mit Variablen IN SQL string (query)

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

  • PROBLEM mit Variablen IN SQL string (query)

    Hallo, ich möchte in das ARRAY
    $POST['SPRACHE']
    den Text AUSGABE='D' OR AUSGABE ='E' OR AUSGABE ='F'
    stehen haben und zwar so, dass ich dann
    $POST['SPRACHE']
    in der WHERE Bedingung eines SQL strings verwenden kann, der
    in einfachen ' steht.


    Geschrieben habe ich
    $_POST['SPRACHE']="AUSGABE='D' OR AUSGABE ='E' OR AUSGABE ='F'";
    beim ausgeben mit
    echo $_POST['SPRACHE']
    funktioniert das auch wunderbar, nur
    beim verwenden mittels
    "'.$_POST['SPRACHE'].'"
    in einem SQL query steht dann

    where
    "AUSGABE='D' OR AUSGABE ='E' OR AUSGABE ='F'"
    ich möchte aber nicht die " am Anfang und Ende des Strings haben da ich
    das ARRAY
    $POST['SPRACHE']
    in einem SQL query verwenden möchte und die WHERE
    bedingung noch weiter geht. Weiss jemand wie das geht?

  • #2
    du setzst die query falsch zusammen.

    Kommentar


    • #3
      "'.$_POST['SPRACHE'].'"
      Die Regeln | rtfm | register_globals | strings | SQL-Injections | [COLOR=silver][[/COLOR][COLOR=royalblue]–[/COLOR][COLOR=silver]][/COLOR]

      Kommentar


      • #4
        Danke erstmal für die schnellen Antworten.

        Original geschrieben von penizillin
        du setzst die query falsch zusammen.
        Joooa, das ist mir schon klar,weil ich " um mein array habe und nur ' um haben will.

        In dieser ->
        "'.$_POST['SPRACHE'].'"
        schreibweise habe ich sämtliche arrays in meinem query und es hat funktioniert in meinem ARRAY AUSGABE='D' OR AUSGABE ='E' OR AUSGABE ='F' sind jedoch
        ' enthalten und daher funktioniert das nicht.

        LG,Eller

        Kommentar


        • #5
          und jetzt?

          Kommentar


          • #6
            ....habe ich immernoch keine Ahnung, wie ich die "" wieder entferne, stripslashes macht es auch.

            Kommentar


            • #7
              du weißt, wo die lustige "entf"-taste ist?

              was passiert, wenn du die anführungsstriche rausnimmst?

              Kommentar


              • #8
                wenn ich
                $_POST['SPRACHE']='AUSGABE='D' OR AUSGABE ='E' OR AUSGABE ='F'';
                schreibe, gibt es wohl Fehler würde ich vermuten.
                Könntest du mir jetzt vielleicht sagen, wie man es richtig macht?

                LG, Eller

                Kommentar


                • #9
                  daran wirds wohl nicht liegen. zeig mal, wo du diese variable in die query einbaust.

                  Kommentar


                  • #10
                    ich tippe mal drauf, dass es falsch rum ist ^^

                    PHP-Code:
                    '".$_POST['bla']."' 
                    Für Rechtschreibfehler übernehme ich keine Haftung!

                    Kommentar


                    • #11
                      Also was ich vorhabe ist eine Suche zu programmieren.
                      In der Datenbank gibt es einen Linknamen z.B. PHP, die entsprechende URL z.B.
                      http://www.PHP.net, das Datum, wann die Seite eingetragen wurde sowie die Sprache der
                      Seite. Die Sprache kann entweder E (ENGLISH), D (DEUTSCH) oder F (FRANZ) sein oder ALL, wenn der User alle Sprachen haben möchte.
                      Der User soll sich aber nicht nur die Webseiten eines Landes anzeigen können, sondern auch die aller Länder. Ein Einfaches select * from würde hier reichen, aber da die DB noch etwas komplexer ist, geht es eben nicht. Deshalb möchte ich, dass das

                      ARRAY
                      PHP-Code:
                        $_POST['SPRACHE'
                      den string
                      'D' OR AUSGABE ='E' OR AUSGABE ='F' zugewiesen wird, sofern der User
                      Im Suchformular den Wert ALL übermittelt.
                      Dies habe ich Mittels
                      PHP-Code:
                      if   ($_POST['SPRACHE']=='ALL'){
                      $_POST['SPRACHE']="'D' OR AUSGABE ='E' OR AUSGABE ='F'"

                      getan.
                      Mein query, was die Einträge der letzten XXX Jahre ermittelt funktioniert auch,

                      PHP-Code:
                      $query='SELECT LINKNAME,LINK,STAND FROM tabelle  where STAND > NOW() - INTERVAL "'.$_POST['ZEIT'].'" YEAR'
                      Ich möchte aber auch die Sprache mit implementieren.
                      Hierzu habe ich das query
                      PHP-Code:
                      $query='SELECT LINKNAME,LINK,STAND FROM tabelle where AUSGABE = "'.$_POST['SPRACHE'].'"  AND STAND > NOW() - INTERVAL "'.$_POST['ZEIT'].'" YEAR'
                      genommen was eben nicht funktioniert. Wenn ich dieses query mit echo ausgebe, sieht es so aus
                      PHP-Code:
                      SELECT LINKNAME,LINKSTAND FROM tabelle where AUSGABE "'D' OR AUSGABE ='E' OR AUSGABE ='F'" AND STAND NOW() - INTERVAL "100" YEAR 
                      was ich haben möchte ist, dass mein query funktioniert. Dies liegt wohl daran, dass vor D und nach F " stehen die dort nicht hingehören. Ich habe von den strings nicht so den Plan und kenne auch keine gute Seite wo das erklàrt wird.

                      LG, Eller

                      Kommentar


                      • #12
                        Original geschrieben von eller73
                        Ich habe von den strings nicht so den Plan und kenne auch keine gute Seite wo das erklàrt wird.
                        Und davon, mal ins Handbuch zu schauen, hältst du gar nix?

                        http://www.php.net/manual/de/language.types.string.php
                        I don't believe in rebirth. Actually, I never did in my whole lives.

                        Kommentar


                        • #13
                          PHP-Code:
                          $query=' Anfang ' $_POST['mitte'] . ' ENDE' 
                          Strings gehören in Anführungszeichen, und zwar entweder in einfache (') oder in doppelte (").
                          Deiner fängt mit einfachen an. Zwischen "Ausgabe" und AND willst du deinen String sozusagen kurz verlassen, um die Variable da einzuhängen. Also musst du den String so beenden, wie du ihn begonnen hast, mit dem einfachen Anführungszeichen, sonst nichts.
                          ich glaube

                          Kommentar


                          • #14
                            Ich habe von den strings nicht so den Plan und kenne auch keine gute Seite wo das erklàrt wird.
                            hier

                            gruß
                            peter
                            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
                            Meine Seite

                            Kommentar


                            • #15
                              Danke für die Hilfe und die Links, ich habe die Lösung gerade durch probieren herausgefunden. Problem hat sich also erledigt.

                              Kommentar

                              Lädt...
                              X