[MySQL 3.23.X] like

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

  • [MySQL 3.23.X] like

    In meiner DB sind verschiedene Spalten die ich miteinnander verknüpfe

    PHP-Code:
    $a=mysql_query("SELECT p1.id, p1.vorname, p1.nachname, p3.name, p2.verguetung, p2.mitglied_id 
    FROM pay_bestellung p1 
    INNER JOIN pay_ref p2 
    ON p2.bestellung_id = p1.id 
    INNER JOIN pay_produkte p3 
    ON p3.id = p2.produkt_id
    where
    p1.vorname like '%
    $_POST[suche]%'
    and p2.status != '1'
    "
    ) or die(mysql_error()); 
    So jetzt klappt alles und er sucht mir erfolgreich nach

    PHP-Code:
    p1.vorname like '%$_POST[suche]%' 
    Wenn ich jetzt nach vorname und nachname suchen möchte sollte doch ein einfaches "or" reichen oder nicht?

    Dies trifft leider nicht zu denn dann funktioniert das ganze auf einmal nicht mehr...


    Oder liegt da in meinem Kopf wieder die Logik falsch

  • #2
    warum postest du code der funktioniert, anstatt mal den echten (!) query zu posten, der nicht funktioniert. Aber bitte den Query, den du an die Datenbank sendest, nicht irgendeine Variablendefinition, die zufällig $sql oder so heißt.

    Kommentar


    • #3
      Der funktioniert z.B nicht... (nicht schwer zu versetehn oder?)

      PHP-Code:
      $a=mysql_query("SELECT p1.id, p1.vorname, p1.nachname, p3.name, p2.verguetung, p2.mitglied_id 
      FROM pay_bestellung p1 
      INNER JOIN pay_ref p2 
      ON p2.bestellung_id = p1.id 
      INNER JOIN pay_produkte p3 
      ON p3.id = p2.produkt_id
      where
      p1.vorname like '%
      $_POST[suche]%'
      or
      p1.nachname like '%
      $_POST[suche]%'
      and p2.status != '1'
      "
      ) or die(mysql_error()); 

      @TobiaZ
      Bist ja ein ganz netter

      Kommentar


      • #4
        die query sucht jetzt nach:

        p1.vorname like '%$_POST[suche]%'
        ODER
        p1.nachname like '%$_POST[suche]%' and p2.status != '1'

        vielleicht mal ne klammer setzen?


        PHP-Code:
        WHERE 
            
        (p1.vorname like '%$_POST[suche]%' OR  p1.nachname like '%$_POST[suche]%')
        AND 
            
        p2.status != '1' ... 
        Kissolino.com

        Kommentar


        • #5
          Hast du mein Posting überhaupt gelesen? Ich hab doch schon extra geschrieben, dass du den Query posten sollst, der an die DB gesendet wird. und was machst du? nimmst den, der im PHP-Quelltext steht. Dassa PHP und SQL was grundverschiedenen ist, weißt du?

          Kommentar


          • #6
            @Wurzel
            Danke klappt wunderbar

            @Tobiaz
            Ja ich weis das PHP und MySQL zwei verschiedene dinge sind

            Allerdings wusste ich nicht was du damit meinst, war nen bissel komisch ausgedrückt (in meinen Augen)

            Kommentar


            • #7
              tobi bezog sich darauf:
              PHP-Code:
              "... p1.vorname like '%$_POST[suche]%' ..."
              //^^ böse

              "... p1.vorname like '%".$_POST['suche']."%' ..."
              //^^ besser 
              Kissolino.com

              Kommentar


              • #8
                Wieso?

                Kommentar


                • #9
                  variablen in strings kommt nicht so gut ... und array-werte noch weniger,
                  mal klappts, mal nicht ... ist in jedem fall sicherer, variablen vom string zu
                  isolieren.
                  Kissolino.com

                  Kommentar


                  • #10
                    Original geschrieben von Wurzel
                    variablen in strings kommt nicht so gut ... und array-werte noch weniger,
                    mal klappts, mal nicht ... ist in jedem fall sicherer, variablen vom string zu
                    isolieren.
                    ok wieder was neues über Sicherheit gelernt

                    Danke für die Erklärung

                    Kommentar


                    • #11
                      @Wurzel: Noch nicht mal

                      was ist daran so komisch ausgedrückt:
                      Aber bitte den Query, den du an die Datenbank sendest, nicht irgendeine Variablendefinition, die zufällig $sql oder so heißt.
                      sendest du etwa eine verknüfung von variablen und strings an die DB? NEIN. Nur einen Query. Und der ist im Regelfall ein String!

                      Kommentar


                      • #12
                        Original geschrieben von TobiaZ
                        @Wurzel: Noch nicht mal
                        OffTopic:
                        schade ... ich dachte die neue glaskugel wäre ein besseres modell
                        Kissolino.com

                        Kommentar


                        • #13
                          OffTopic:
                          Jetzt sag bloß, mit der neuen Kugel gehts bei dir auch Sonntags? Echt klasse. Ich bin ja seit langem über ein Firmware Upgrade am überlegen.

                          Kommentar

                          Lädt...
                          X