Ankündigung

Einklappen
Keine Ankündigung bisher.

mysql abfrage in Schleife

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

  • mysql abfrage in Schleife

    Hallo zusammen,

    wie schaffe ich es denn während dem auslesen einer Datenbankabfrage, eine 2te Abfrage durchzuführen?
    PHP-Code:
    $sql2 "Select * from auswertung where marktnr='2002'";
    $res2 mysql_db_query($database$sql2);

    While(
    $row mysql_fetch_array($res2))
    {
     

    echo 
    "<tr><td valign='top'><input type='text' name='bezeichnung' size='10' value='".$row['bezeichnung']."' readonly></td>
    <td valign='top'><input type='text' name='modus' size='10' value='"
    .$row['modus']."' readonly></td>
    <td valign='top'><input type='text' name='Name' size='10' value='"
    .$HIFLE!!!."' readonly></td>

    Also ich mach ne Abfrage in Tabelle1, dort steht in einer Spalte die PersonenID drin. In meiner Ausgabe will ich aber nun aus Tabelle2 zu der ID den Namen dazu auslesen, wie geh ich denn da vor?
    Solange die eine Abfrage in der Schleife läuft kann ich ja keine 2te Abfrage machen, oder geht sowas?

    --> ich will zu einem Wert den ich aus der einen Tabelle bei jedem Schleifendurchgang den passenden Wert aus der anderen Tabelle dazu haben....


    Vielen Dank für eure Hilfe.

    Gruß HaVoK


  • #2
    Probieren geht über studieren

    PHP-Code:
    <?php
    $sql2 
    "Select * from auswertung where marktnr='2002'"
    $res2 mysql_db_query($database$sql2); 

    While(
    $row mysql_fetch_array($res2)) 

    $sql3 'Select NAME from XXX where XXX="'.$row['id'].'"';
    $name mysql_fetch_array($sql3);

    echo 
    "<tr><td valign='top'><input type='text' name='bezeichnung' size='10' value='".$row['bezeichnung']."' readonly></td> 
    <td valign='top'><input type='text' name='modus' size='10' value='"
    .$row['modus']."' readonly></td> 
    <td valign='top'><input type='text' name='Name' size='10' value='"
    .$name."' readonly></td> 

    ?>

    Kommentar


    • #3
      Die Informationen können mit einer einzelnen Abfrage (schneller, einfacher, besser) besorgt werden.
      http://www.w3schools.com/sql/sql_join.asp erklärt, wie das geht.

      Kommentar


      • #4
        hey cool, vielen dank euch beiden!!
        klappt wunderbar.
        dumm wenn man von Visual Basic herkommt, da geht das nämlich net so einfach

        Gruß HaVoK

        Kommentar


        • #5
          Aber ja doch. JOIN gibt es auch bei access/vb

          Kommentar


          • #6
            ja klar doch gibt es da einen Join, aber man kann nicht eine SQL-Abfrage starten, solange das andere Recordset noch geöffnet ist...
            das mit dem Join ist natürlich die eleganteste Lösung, so hab ich auch nen teil nun umgesetzt.

            Nen Teil aber auch mit dem 2ten Select, je nach größen der Anfragen.

            Gruß HaVoK

            Kommentar


            • #7
              Diese "Freiheit" gibt es bei php auch nur zu einem bestimmten Preis.
              , aber man kann nicht eine SQL-Abfrage starten, solange das andere Recordset noch geöffnet ist...
              Das kann man bei mysql (übertragen) auch nicht. mysql_query holt alle Ergebnisse ab und speichert sie zwischen. Das "Recordset" ist nicht dann nicht mehr geöffnet.
              Es gibt noch http://de.php.net/mysql_unbuffered_query.
              Und da gilt dann auch wieder
              You also have to fetch all result rows from an unbuffered SQL query, before you can send a new SQL query to MySQL.
              An das Zwischenlagern per mysql_query sollte man denken, wenn große Datenmengen vom mysql Server abgerufen werden.

              Kommentar

              Lädt...
              X