Probleme mit verschachtelter Ausgabe

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

  • Probleme mit verschachtelter Ausgabe

    Hallo zusammen,

    habe da ein Problem mit der Ausgabe einer SQL-Abfrage :

    Ich lese von der Tabelle A eine Liste aller Accounts aus und gebe diese als HTML innerhalb einer Tabelle wieder aus. Jetzt gibt es aber zu jedem Account wiederrum weitere Daten in der Tabelle B die durch eine ID zum zugehörigen Datensatz in Tabelle A zugeordnet sind. Soweit so gut.
    Die Ausgabe der Daten der Tabelle mache in etwas so :

    --------------------------------------
    <?
    //** Accounts auflisten
    include ("../func/open.inc.php");

    $query_edit = "SELECT * FROM nochef_impressum";
    $result_edit = mysql_query($query_edit);
    while ($row = mysql_fetch_array($result_edit))
    {
    $id=$row['id'];
    $forward_id=$row['forward_id'];
    $name=$row['name'];
    echo"
    <TABLE ID=\"accounts\" BORDER=1 BORDERCOLOR=\"#737373\" CELLSPACING=0 CELLPADDING=2 WIDTH=\"100%\">
    <TR>
    <TD ROWSPAN=2 WIDTH=240>
    <P><FONT SIZE=\"-1\" FACE=\"Verdana,sans-serif\">$name</FONT></P>
    </TD>

    usw...
    -----------------------------------

    Mein Problem ist es nun, wie ich innerhalb der Ausgabe mit echo" eine weiter SQL-Abfrage reinbastel damit ich die zugehörigen Werte aus der Tabelle B ebenfalls in dieser Schleife auslesen kann.

    War das einigermaßen verständlich ?? I hope so

    Danke für die Tips

    Grüße
    Holger
    Zuletzt geändert von creative4web; 23.06.2002, 14:38.

  • #2
    hast du es mal mit dem JOIN Befehl versucht (siehe SQL-handbuch)

    Falls das nicht funktioniert, und du 2 Querys benötigst, musst du dran denken einen anderen namen für dein $result_edit zu vewenden z.b $result_edit_inner

    Das ist eigentlich alles.

    gruß
    berni

    php-Entwicklung | ebiz-consult.de
    PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
    die PHP Marktplatz-Software | ebiz-trader.de

    Kommentar


    • #3
      Hi

      also join sagt mir (noch) nichts

      Das mit den verschiedenen Queryname ist auch klar. Ich weiss eben nur nicht ob ich innerhalb einer Ausgabe mit echo".... einfach eine SQL-Anweisung reinbasteln kann. Was muß ich da bei der Syntax beachten ?

      THANX

      Kommentar


      • #4
        das echo muss natürlich in mehere Teile zerlegt werden!
        sonst gibt es nicht zu beachten.

        gruß
        berni

        php-Entwicklung | ebiz-consult.de
        PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
        die PHP Marktplatz-Software | ebiz-trader.de

        Kommentar


        • #5
          Ok das mit dem zerlegen des Echos hat gefunzt.

          Nun bekomme ich aber folgende Meldung :

          Warning: Supplied argument is not a valid MySQL result resource in /kunden/fat-4.de/webseiten/creative/networkadmin/admin/body_admin.php on line 107


          hier die Line 107

          ----------------------

          105 $query_edit2 = "SELCECT * FROM nochef_forward WHERE forward_id='$id'";
          106 $result_edit2 = mysql_query($query_edit2);
          107 while ($row = mysql_fetch_array($result_edit2))
          {
          $id2=$row['id'];
          $domainname=$row['domainname'];

          ------------------------------

          An was kann es liegen ??

          THANX

          Kommentar


          • #6
            hast du auch $row2 verwendet?

            und poste mal deinen ganzen Code...

            php-Entwicklung | ebiz-consult.de
            PHP-Webhosting für PHP Entwickler | ebiz-webhosting.de
            die PHP Marktplatz-Software | ebiz-trader.de

            Kommentar


            • #7
              Nee hatte ich nicht.
              Habs jetzt probiert, bekomme aber immer noch den gleichen Fehler. Achtung hier jetzt der Code ( nicht erschrecken )

              -------------------------------------------
              <?
              //** Accounts auflisten
              include ("../func/open.inc.php");

              $query_edit = "SELECT * FROM nochef_impressum";
              $result_edit = mysql_query($query_edit);
              while ($row = mysql_fetch_array($result_edit))
              {
              $id=$row['id'];
              $name=$row['name'];
              echo"
              <TABLE ID=\"accounts\" BORDER=1 BORDERCOLOR=\"#737373\" CELLSPACING=0 CELLPADDING=2 WIDTH=\"100%\">
              <TR>
              <TD ROWSPAN=2 WIDTH=240>
              <P><FONT SIZE=\"-1\" FACE=\"Verdana,sans-serif\">$name</FONT></P>
              </TD>
              <TD WIDTH=241>
              <P><FONT SIZE=\"-1\" FACE=\"Verdana,sans-serif\">Aktive Domains :ID=$id</FONT></P>
              </TD>
              </TR>

              <TR>
              ";


              $query_edit2 = "SELCECT * FROM nochef_forward WHERE forward_id='$id'";
              $result_edit2 = mysql_query($query_edit2);
              while ($row2 = mysql_fetch_array($result_edit2))
              {
              $id2=$row2['id'];
              $domainname=$row2['domainname'];

              echo"

              <TD WIDTH=241>
              <P><FONT SIZE=\"-1\" FACE=\"Verdana,sans-serif\"></FONT><FONT SIZE=\"-2\" FACE=\"Verdana,sans-serif\"><B><a href=\"../show_domain/body_show_domain.php?id=2\" Target=\"Haupttext\" >$domainname</a></B></FONT></P>
              </TD>";
              }

              echo"</TR>

              </TABLE>";

              }
              ?>

              ---------------------------------------------

              THANX A LOT

              Kommentar


              • #8
                Habs mal mit JOIN versucht

                Hi,

                hab mal versucht das Problem mit JOIN zu lösen War leider Fehlanzeige. Gleiche Fehlermeldung. Hier mal kurz die Abfrage :

                -------------------------------------------------
                //** Accounts auflisten
                include ("../func/open.inc.php");

                $query_edit = "SELECT nochef_impressum.id,nochef_impressum.name FROM nochef_impressum RIGHT JOIN nochef_forward ON nochef_impressum.id=nochef_forward.forward_id ORDER BY a.name ASC;";
                $result_edit = mysql_query($query_edit);
                while ($row = mysql_fetch_array($result_edit))
                {
                $id=$row['id'];
                $name=$row['name'];

                echo" usw....

                -----------------------------------------------------

                Vielleicht habt Ihr ja eine zündende Idee ?! Danke schon mal

                Kommentar


                • #9
                  kleine frage am rande kann es sein das du ein mysql_connect vergessen hast das mysql_qury weis doch garnet an welche datenbank er das ganze schicken soll oder habe ich was übersehen?
                  Wusstet ihr schon?
                  Wer später bremst ist länger schnell!

                  Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

                  Kommentar


                  • #10
                    HI Shorty

                    Der Connect wird ganz am Anfang mit ../func/open.inc.php includet. An dem hängst nicht. Ansonsten funzen die Abfragen schon.

                    Kommentar


                    • #11
                      $query_edit2 = "SELCECT * FROM nochef_forward WHERE forward_id='$id'";

                      soll sicher heißen:

                      $query_edit2 = "SELECT * FROM nochef_forward WHERE forward_id='$id'";

                      das Komando SELCECT war mir bis dato noch nicht bekannt ...

                      Mit JOIN übrigens:

                      Code:
                      SELECT i.id, i.name
                      FROM nochef_impressum AS i
                      INNER JOIN nochef_forward AS f
                      ON i.id=f.forward_id
                      ORDER BY i.name ASC
                      PHP-Code:
                      $query_edit "SELECT i.id, i.name FROM nochef_impressum AS i INNER JOIN nochef_forward AS f ON i.id=f.forward_id ORDER BY  i.name ASC"
                      Also: Auf jeden fall im SQL-Statement das Semikolon ( ; ) weglassen!
                      carpe noctem

                      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
                      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

                      Kommentar


                      • #12
                        das mit dem join würde ich aber mal anders probieren


                        SELECT a.id, .name FROM nochef_impressum a, nochef_forward b where a.id=b.forward_id ORDER BY a.name ASC;


                        vieleicht funct das ja besser hoffe es ist kein fehler drin

                        gruß shortie
                        Wusstet ihr schon?
                        Wer später bremst ist länger schnell!

                        Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

                        Kommentar


                        • #13
                          @ goth

                          Also soweit funz alles. Nur wie kann ich verhindern, das für alle passenden Einträge in f jeweils der Name in i auftaucht. Funzt das mit gruppieren oder so ??

                          Ach ja noch was : Wie lautet der Syntax wenn ich aus der Tabelle f noch weitere Spalten auslesen will ??

                          TANX A LOT

                          Kommentar


                          • #14
                            da must du dann einen outer join machen zumindest so wie ich verstehe was du willst

                            die anderen spalten einfach nach dem select mit ansprechen sprich

                            select i.name, i. strasse, f.weisnet

                            dann bekommst du diese mit ausgegeben
                            Wusstet ihr schon?
                            Wer später bremst ist länger schnell!

                            Die wahrscheinlich beste Funktion in PHP ist mysql_error(), doch leider auch die unbekannteste!

                            Kommentar


                            • #15
                              @shortie 19

                              THANX , ok das mit den Spalten geht klar.
                              Kannst Du mir das mit dem OuterJoin etwas näher bringen ??

                              Bin halt doch noch ein Newbie

                              Kommentar

                              Lädt...
                              X