Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Abfrage 2 Datenbanken, in der zweiten DB kommt der Abfragewert mehrmals vo

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

  • [Erledigt] Abfrage 2 Datenbanken, in der zweiten DB kommt der Abfragewert mehrmals vo

    Hallo,

    ich dokter schon ne Weile rum, finde im Netz aber leider nix entsprechendes.

    Ich habe 2 Datenbanken. In der ersten kommt jedes Datum nur einmal vor. In der zweiten sind die Ereignisse eines Tages aufgesplittet, so dass dort mehrere Ereignisse an dem gleichen Tag vorkommen.

    Ich suche nun eine Abfrage, die die Daten der zweiten Tabelle in einen Array schreibt.

    PHP-Code:
     
    #Abfrage db1
    $sql "SELECT * FROM db1";
    $daten = @mysql_query($sql);
    $anzahl_datensaetze = @mysql_num_rows($daten);
     
    #Abfrage db2
    $sql "SELECT * FROM db2";
    $daten = @mysql_query($sql);
     
    $ergebnis = array();
     
    #Schleife
    for($ii=0;$ii<$anzahl_datensaetze;$ii++){
     
    $datum eregi_replace("-","",@mysql_result($daten,$ii,"datum"));
     
    #Abfrage in der 2. db müsste dann irgendwie so aussehen:
    $jj 0;
    $sql "SELECT * FROM db2 WHERE datum = '$datum'";
    $abfrage = @mysql_query($sql);
    while(
    $datum mysql_fetch_assoc($abfrage)){
    $ergebnis[$jj] = Ereignis;
    $jj++;
    }

    Ich weiß, der Code hinkt.
    Aber so in der Art müsste man das Problem lösen können.
    Ich komm nur nicht drauf.

    Vielen Dank.

    Gruß


  • #2
    Also Du hast nicht zwei Datenbanken, sondern zwei Tabellen in einer Datenbank.

    Schau Dir mal den Befehl JOIN an.

    Grüße
    Thomas

    Kommentar


    • #3
      Hab´ das Problem inzwischen gelöst.

      Join ist grundsätzlich eine gute Funktion. In diesem Fall habe ich jedoch eine Lösung per Abfrage und Schleife konstruiert.

      PHP-Code:
       
      #Abfrage db1
      $sql "SELECT * FROM db1";
      $daten_db1 = @mysql_query($sql);
      $anzahl_datensaetze_db1 = @mysql_num_rows($daten);
       
      #Schleife über alle Datensätze der db1
      for($ii=0;$ii<$anzahl_datensaetze_db1;$ii++){
       
      $datum str_replace("-","",@mysql_result($daten_db1,$ii,"datum"));
       
      #Abfrage der db2 innerhalb der Schleife
      $sql "SELECT * FROM db2 WHERE datum = $datum";
      $daten_db2 = @mysql_query($sql);
      $anzahl_datensaetze_db2 = @mysql_num_rows($daten);
       
      #For Schleife zur Abfrage der Datensätze aus db2
      for($ij=0;$ii<$anzahl_datensaetze_db2;$ij++){
       
      $spalte1 = @mysql_result($daten_db2,$ii,"spalte1");
      #usw.
      }

      Kommentar


      • #4
        Datenbankabfragen in Schleifen sind hinsichtlich Performance so gut wie nie eine gute Idee.

        Kommentar

        Lädt...
        X