Zwei Tabellen abfragen

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

  • Zwei Tabellen abfragen

    Hallo alle miteinander,

    Ich möchte mir ein Newsscript schreiben, bei dem man Kommentare machen kann.

    Ich habe folgende Abfrage der news Tabelle:
    Code:
    $conn=mysql_connect($MySQL_Host, $MySQL_User, $MySQL_Pass); 
    mysql_select_db("$MySQL_Data");
    
    $r = mysql_query("SELECT * FROM news order by id DESC") or die(mysql_error()); 
    while ($news =mysql_fetch_array($r))
    Doch jetzt möchte ich noch in der Tabelle news_komm nachsehen ob ein Kommentar zu dieser News da ist.

    Meine news Tabelle hat folgende Spalten:
    ID
    Datum
    News
    Verfasser
    Verfasser_mail

    Meine news_komm Tabelle hat folgende Spalten:
    Komm_id (von news Tabelle)
    Komm_datum
    Komm_news
    Komm_ver
    Komm_ver_mail

    Wie bekomme ich nun die beiden Tabellen zusammen?

    [Editiert von Wotan am 11-02-2002 um 13:50]
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

  • #2
    Bekomme es zwar jetzt hin das ich zwei Tabellen gleichzeitg abfragen kann, bekomme aber noch nicht das gewünschte Ergebnis.

    Code:
    $r = mysql_query("SELECT news.id,news.datum, news.news,
    news.verfasser, news.verfasser_mail, news_komm.komm_id,
    news_komm.komm_datum, news_komm.komm_news,
    news_komm.komm_ver, news_komm.komm_ver_mail FROM news,
    news_komm WHERE news.id=news_komm.komm_id") or die
    mysql_error());
    Mit dieser Abfrage bekomme ich folgendes Ergebnis:

    News ID = 1
    News = Erste Testnews.
    Verfasser = Gilbert
    Verfassermail = xxx@gmx.de
    Kommentar zu dieser News machen
    Komm_id = 1
    Komm_datum = 12.02.2002
    Komm_news = Kommentar zu erste Testnews.
    Komm_ver = Petra
    Komm_ver_mail = xxx@gmx.de

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

    News ID = 1
    News = Erste Testnews.
    Verfasser = Gilbert
    Verfassermail = xxx@gmx.de
    Kommentar zu dieser News machen
    Komm_id = 1
    Komm_datum = 13.02.2002
    Komm_news = Zweiter Kommentar zur ersten Testnews.
    Komm_ver = Gilbert
    Komm_ver_mail = xxx@gmx.de

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

    Aber eigentlich wollte ich es so haben:

    News ID = 1
    News = Erste Testnews.
    Verfasser = Gilbert
    Verfassermail = xxx@gmx.de
    Kommentar zu dieser News machen

    Komm_id = 1
    Komm_datum = 12.02.2002
    Komm_news = Kommentar zu erste Testnews.
    Komm_ver = Petra
    Komm_ver_mail = xxx@gmx.de

    Komm_id = 1
    Komm_datum = 13.02.2002
    Komm_news = Zweiter Kommentar zur ersten Testnews.
    Komm_ver = Gilbert
    Komm_ver_mail = xxx@gmx.de

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

    Mein Script für die Ausgabe sieht so aus:
    Code:
    while ($news =mysql_fetch_array($r)) 
    { 
    print "News ID = $news[id]<br>";
    print "News = $news[news]<br>";
    print "Verfasser = $news[verfasser]<br>";
    print "Verfassermail = $news[verfasser_mail]<br>";
    print "Kommentar zu dieser News machen<br>";
    print "Komm_id = $news[komm_id]<br>";
    print "Komm_datum = $news[komm_datum]<br>";
    print "Komm_news = $news[komm_news]<br>";
    print "Komm_ver = $news[komm_ver]<br>";
    print "Komm_ver_mail = $news[komm_ver_mail]<br>";
    print "<hr><br>";
    }
    Es sollen auch alle News angezeigt werden die noch keinen Kommentar haben und das sortiert nach der ID aus der news Tabelle. Wer kann helfen???

    [Editiert von Wotan am 11-02-2002 um 14:02]
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      Wie keiner eine Antwort auf mein Problem?
      *winks*
      Gilbert
      ------------------------------------------------
      Hilfe für eine Vielzahl von Problemen!!!
      http://www.1st-rootserver.de/

      Kommentar


      • #4
        Code:
        $r = mysql_query("SELECT * FROM news order by id DESC") or die(mysql_error());
        while ($news =mysql_fetch_array($r)) { 
        	print "News ID = $news[id]<br>";
        	print "News = $news[news]<br>";
        	print "Verfasser = $news[verfasser]<br>";
        	print "Verfassermail = $news[verfasser_mail]<br>";
        	print "Kommentar zu dieser News machen<br>";
        	$ri = mysql_query("SELECT * FROM news_komm WHERE komm_id = $news[id] order by komm_datum DESC") or die(mysql_error());
        	while ($newsi =mysql_fetch_array($ri)) { 
        		print "Komm_id = $newsi[komm_id]<br>";
        		print "Komm_datum = $newsi[komm_datum]<br>";
        		print "Komm_news = $newsi[komm_news]<br>";
        		print "Komm_ver = $newsi[komm_ver]<br>";
        		print "Komm_ver_mail = $newsi[komm_ver_mail]<br>";
        		print "<hr>";
        	}
        	print "<hr><br>";
        }

        Kommentar


        • #5
          Danke hand.

          geht das auch anders, üder WHERE und AND Abfragen?
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #6
            Ja sicher.
            Du könntest Deinen Select so belassen
            PHP-Code:
            $r mysql_query("SELECT news.id,news.datum, news.news,
            news.verfasser, news.verfasser_mail, news_komm.komm_id,
            news_komm.komm_datum, news_komm.komm_news,
            news_komm.komm_ver, news_komm.komm_ver_mail FROM news,
            news_komm WHERE news.id=news_komm.komm_id"
            ) or die
            mysql_error()); 
            Müßtest aber bei der Ausgabe einen Gruppenwechsel fabrizieren:
            Code:
            $newsid_alt="";
            while ($news =mysql_fetch_array($r)) {
               if ($news[id] != $newsid_alt) {
                  print "News ID = $news[id]<br>";
                  print "News = $news[news]<br>";
                  print "Verfasser = $news[verfasser]<br>";
                  print "Verfassermail = $news[verfasser_mail]<br>";
                  print "Kommentar zu dieser News machen<br>";
               }
               $newsid_alt = $news[id];
               print "Komm_id = $news[komm_id]<br>";
               print "Komm_datum = $news[komm_datum]<br>";
               print "Komm_news = $news[komm_news]<br>";
               print "Komm_ver = $news[komm_ver]<br>";
               print "Komm_ver_mail = $news[komm_ver_mail]<br>";
               print "<hr><br>";
            }
            oder so ähnlich ....

            Kommentar


            • #7
              Nein Nein ich lass das jetzt so wie du mir es in der esten Antwort gegeben hast. Ist für meinen Zweck noch ausbaufähiger als das zweite.
              *winks*
              Gilbert
              ------------------------------------------------
              Hilfe für eine Vielzahl von Problemen!!!
              http://www.1st-rootserver.de/

              Kommentar

              Lädt...
              X