Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Einbindung einer komplexen MySQL-Abfrage in PHP

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Einbindung einer komplexen MySQL-Abfrage in PHP

    Ich habe das Problem, dass folgende MySQL-Query allein funktioniert, jedoch nicht, wenn ich sie in PHP einbette. Woran koennte das liegen?
    Evtl. an der Trennung der beiden SELECT-Statements durch das ";"? Oder kann ich ggf. gar nicht zwei Abfragen in $sql2 packen? Oder lassen sich bei der Einbettung in PHP keine temporaeren Tabellen erstellen?

    $sql2="CREATE TEMPORARY TABLE Kooperationen
    SELECT
    V_Koop_ID
    FROM V_Partner
    WHERE Koerpscha_ID = 2;
    SELECT
    n.Kooperationsform_Label,
    l.Land_Label
    FROM V_Partner p, Verwaltung v, Kooperationen k, Laender_labels l, Kooperationsform_labels n, V_Koop w
    WHERE p.Koerpscha_ID <> \"".$ds_id2."\"
    AND k.V_Koop_ID = p.V_Koop_ID
    AND p.Koerpscha_ID = v.Koerpscha_ID
    AND v.V_Land = l.Land
    AND w.V_Koop_ID = n.Kooperationsform
    AND w.V_Koopform = n.Kooperationsform
    ORDER BY n.Kooperationsform_Label DESC";

  • #2
    Re: Einbindung einer komplexen MySQL-Abfrage in PHP

    Zitat von Lage
    Evtl. an der Trennung der beiden SELECT-Statements durch das ";"? Oder kann ich ggf. gar nicht zwei Abfragen in $sql2 packen?
    So isses. Der MySQL Client kann keinen Stapelbetrieb.

    Kommentar


    • #3
      Gibt es denn alternative Loesungsmoeglichkeiten?

      Kommentar


      • #4
        Zitat von Lage
        Gibt es denn alternative Loesungsmoeglichkeiten?
        Einzeln hinschicken.

        Kommentar


        • #5
          Wenn ich es so versuche...

          $sql2="SELECT
          V_Koop_ID
          FROM V_Partner
          WHERE Koerpscha_ID = \"".$ds_id2."\";
          $sql4="SELECT
          n.Kooperationsform_Label,
          l.Land_Label
          FROM V_Partner p, Verwaltung v, Laender_labels l, Kooperationsform_labels n, V_Koop w
          WHERE p.Koerpscha_ID <> \"".$ds_id2."\"
          AND \"".$sql2."\" = p.V_Koop_ID
          AND p.Koerpscha_ID = v.Koerpscha_ID
          AND v.V_Land = l.Land
          AND w.V_Koop_ID = n.Kooperationsform
          AND w.V_Koopform = n.Kooperationsform
          ORDER BY n.Kooperationsform_Label DESC";

          ...macht er Probleme an der folgenden Stelle: $sql4="SELECT

          Wie kann ich das Ganze verschachteln, so dass es funktioniert?

          Kommentar


          • #6
            Ah, vor $sql4 fehlte ein "

            Kommentar


            • #7
              bitte die Code-Tages benutzen. Dann wird es auch mal leserlich. Danke.

              Kommentar


              • #8
                Nun macht er in der hiesigen Zeile 3 Aerger:

                [php]$result2=mysql_query($sql4, $db);
                $autor2=array();
                while($row2=mysql_fetch_row($result2)){
                array_push($autor2, $row2);
                }

                Kommentar


                • #9
                  @ supertramp: Wie geht das?!?

                  Kommentar


                  • #10
                    mit [ php ] anfangen und mit [ /php ] schliessen. Allerdings ohne die Leerzeichen dazwischen. Oder bei aktiviertem JS, einfach den Button dafür benutzen...

                    Kommentar


                    • #11
                      @supertramp: Danke! Dann war ich ja schon mal auf dem richtigen Weg (s. o.)...

                      Kommentar


                      • #12
                        am besten editierst du deine Beiträge noch, dann sind sie endlich leserlich. Wenn du dann noch Zeile 3 deklarierst und sagst, was das heißt: 'nun macht er Ärger'...
                        Klaut er deinen PC?

                        Kommentar


                        • #13
                          PHP-Code:
                          $result2=mysql_query($sql4, $db); 
                          $autor2=array(); 
                          while(
                          $row2=mysql_fetch_row($result2)){ 
                          array_push($autor2, $row2); 
                          Wenn ich die Seite, in den dieses php-Skript eingebunden ist aufrufe, bekomme ich aufgrund der mit while beginnenden Zeile eine Fehlermeldung, obwohl die MySQL-Abfragen in MySQL funktionieren. Woran kann das liegen?

                          Kommentar


                          • #14
                            PHP-Code:
                            <?
                            include "safe/pw.inc";
                            $db = mysql_connect ($host,$benutzer,$kenn)
                            or exit ("Keine Verbindung hergestellt!");
                            mysql_select_db ("owkn",$db)
                            or exit ("Datenbank nicht geöffnet");
                            $ds_id2=$_GET['ds_id'];
                            $sql2="SELECT
                            V_Koop_ID
                            FROM V_Partner
                            WHERE Koerpscha_ID = \"".$ds_id2."\"";
                            $sql4="SELECT
                            n.Kooperationsform_Label,
                            l.Land_Label
                            FROM V_Partner p, Verwaltung v, Laender_labels l, Kooperationsform_labels n, V_Koop w
                            WHERE p.Koerpscha_ID <> \"".$ds_id2."\"
                            AND \"".$sql2."\" = p.V_Koop_ID
                            AND p.Koerpscha_ID = v.Koerpscha_ID
                            AND v.V_Land = l.Land
                            AND w.V_Koop_ID = n.Kooperationsform
                            AND w.V_Koopform = n.Kooperationsform
                            ORDER BY n.Kooperationsform_Label DESC";
                            $result2=mysql_query($sql4, $db);
                            $autor2=array();
                            while($row2=mysql_fetch_row($result2)){
                            array_push($autor2, $row2);
                            }
                            #print_r($autor2);
                            ?>
                            Mein Problem ist, dass $sql2 mehrere Datensaetze ausgeben kann, die in der Abfrage $sql4 eingebunden werden sollen. Kann ich dieses Problem lösen, indem ich eine Schleife einbaue? Wenn ja, wie muss diese gestaltet sein und an welcher Stelle muss ich sie einfuegen?

                            Kommentar

                            Lädt...
                            X