[PHP5] Abfrage Problem

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

  • [PHP5] Abfrage Problem

    Hi,

    ich habe mir ein Suchformular gemacht in dem man zwischen
    verschiedenen Kunden wählen kann, also z.B. nur ein Kunde
    aber auch eine Liste von Kunden. Aus diesen mache ich dann einen array, der mithilfe von implode nach jeder ID des Kunden ein Komma setzt. Bis hier her funzt auch alles jedoch gibt es bei meiner SQL Abfrage ein Problem:
    in der Variable $ids folgendes drin:
    (3,8,18,19,1,4,14,15,17,2,6,11,13) was absolut richtig ist, jedoch nimmt er mir immer nur die letzte ID und nicht die andere.
    Hier ist meine SQL Abfrage:


    PHP-Code:
    "SELECT id,name,alias,dns,ip
                                    FROM hosts
                                    WHERE customers_id IN (
    $ids)
                                    AND name LIKE '
    $geratename'
                                    AND dns  LIKE '
    $dns'
                                    AND alias LIKE '
    $hostalias'
                                    AND id IN (
    $hostgruppen_id)
                                    AND contactgroups_id IN (
    $kontaktgruppels)
                                    AND notification LIKE '
    $notification'
                                    AND active='
    $hostactive'
                                    AND cast(ip as text) like '
    $ipadresse'
                                    "
    ); 
    Ich denke das ich irgendwas falsch gemacht habe mit dem IN ($ids)
    für die Kunden, aber was?

    Vielen Dank schonmal für eure Tips

  • #2
    Re: [PHP5] Abfrage Problem

    was hat test der generierten query in PMA ergeben ...?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      laß dir die query mal per echo ausgeben.
      Die Zeit hat ihre Kinder längst gefressen

      Kommentar


      • #4
        wie kann ich mir denn den query per echo ausgeben lassen?

        Kommentar


        • #5
          echo $query;

          sofern du die query vorher in $query gespeichert hast.

          Kommentar


          • #6
            Hab das Problem weiter erörtert vielleicht könnt ihr mir nochmal helfen:
            wir haben hier ein PostgreSQL Datenbak un die kommt mit dem Query nicht klar.

            PHP-Code:
            $result pg_exec($verbindung"SELECT id,name,alias,dns,ip
                                            FROM hosts
                                            WHERE customers_id IN (
            $ids)
                                            AND name LIKE '
            $geratename'
                                            AND dns  LIKE '
            $dns'
                                            AND alias LIKE '
            $hostalias'
                                            AND id IN (
            $hostgruppen_id)
                                            AND contactgroups_id IN (
            $kontaktgruppels)
                                            AND notification LIKE '
            $notification'
                                            AND active='
            $hostactive'
                                            AND cast(ip as text) like '
            $ipadresse
            $ids hat zwar mehrere Werte 3,4,5 aber PostgreSQL kann das nicht
            sondern nimmt immer nur das letze Element. Es geht nur wenn man
            in die Klammer mehrere Variablen schreibt also so in der Art:
            WHERE customers_id IN ($id1,$id2,$id3)

            Kommentar


            • #7
              warum gibst du nicht endlich mal den erzeugten querystring aus, um den zu kontrollieren?
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                Ist $ids ein Array?

                PHP-Code:
                $sql "SELECT id,name,alias,dns,ip
                                                FROM hosts
                                                WHERE customers_id IN (
                $ids)
                                                AND name LIKE '
                $geratename'
                                                AND dns  LIKE '
                $dns'
                                                AND alias LIKE '
                $hostalias'
                                                AND id IN (
                $hostgruppen_id)
                                                AND contactgroups_id IN (
                $kontaktgruppels)
                                                AND notification LIKE '
                $notification'
                                                AND active='
                $hostactive'
                                                AND cast(ip as text) like '
                $ipadresse';
                echo 
                $sql
                Was kommt da raus?
                Ich denke, also bin ich. - Einige sind trotzdem...

                Kommentar


                • #9
                  warum verwendest du LIKE ohne Wildcards? IMHO liegts daran!

                  Kommentar


                  • #10
                    Laut der Fragestellung von oben ist $ids kein Array sondern ein String mit CSV-Einträgen, also (1,2,3,4).
                    Das kann natürlich nicht gehen...

                    EDIT: Ok,Ok, hab gesehen, das das doch gehen soll, also behaupte ich das Gegenteil
                    Zuletzt geändert von neogrande; 19.01.2005, 11:18.

                    Kommentar


                    • #11
                      schon mal an: pg_result_error() , pg_last_error() oder pg_result_status() gedacht?
                      mfg
                      marc75

                      <Platz für anderes>

                      Kommentar

                      Lädt...
                      X