Hi, I've got a problem with database abstraction. There are two tables. One with articles (id,content,author,time) and one with comments on those articles (id,article_id,content,author,time). My script looks like this:
function show_news($limit){ /* get db parameters and connect to db */ require ("inc/db_parameter.inc.php"); $connect = mysql_connect($dbhost,$dbuser,$dbpasswd) or die("Can't connect to database"); mysql_select_db($dbname,$connect) or die(mysql_error()); $abfrage = "SELECT id,autor,zeit,betreff,inhalt FROM ts_artikel ORDER BY zeit DESC" . $limit; $resultat = mysql_query($abfrage) or die (mysql_error()); /* get articles and display*/ While ($row = mysql_fetch_array($resultat, MYSQL_ASSOC)) { /* get author */ $abfrage2 = "SELECT vorname,nachname FROM ts_users WHERE id='" . $row["autor"] ."'"; $resultat2 = mysql_query($abfrage2) or die (mysql_error()); list($autorv, $autorn) = mysql_fetch_row($resultat2); /* get comments */ $abfrage3 = "SELECT autor,zeit,betreff,inhalt FROM ts_kommentar WHERE artikel_id='" . $row["id"] . "' ORDER BY zeit ASC"; $resultat3 = mysql_query($abfrage3) or die (mysql_error()); /* generate display */ echo "<table width='100%' cellspacing='0' cellpadding='0' class='formtable' style='width:100%;margin:0'><tr><td class='artikelhead' style='text-align:left;'>" . htmlentities($autorv). " " . htmlentities($autorn); echo "</td><td class='artikelhead' style='text-align:right'>" . strftime("%A %d.%m.%Y,%H:%M:%S", $row["zeit"]); echo "</td></tr><tr><td colspan='2'><b>" . nl2br(chop($row["betreff"])) . ":</b><br />" . nl2br(chop($row["inhalt"])) . "</td></tr>"; /* get comments of there are some */ if (!mysql_num_rows($resultat3) < 1) { while ($row2 = mysql_fetch_array($resultat3)) { $abfrage4 = "SELECT vorname,nachname FROM ts_users WHERE id='" . $row2["autor"] . "'"; /*get author for comments */ $resultat4 = mysql_query($abfrage4) or die (mysql_error()); list($autorkv, $autorkn) = mysql_fetch_row($resultat4); echo "<tr><td class='commenthead' style='text-align:left'><img src='img/arrow.png' border='0' height='10' width='10'> " . htmlentities($autorkv) . " " . htmlentities($autorkn) . "</td><td class='commenthead' style='text-align:right'>" . strftime("%A %d.%m.%Y,%H:%M:%S", $row2["zeit"]); echo "</td></tr><tr><td colspan='2' class='commentcell'><b>" . nl2br(chop($row2["betreff"])) . ":</b><br />" . nl2br(($row2["inhalt"])); echo "</td></tr>"; } } echo "<tr><td colspan='2' class='artikelcell' style='border-top:1px solid #808080'><a href='submit_comment.php?artikel=" . $row["id"] . "'>Kommentar schreiben</a></td></tr></table><br />"; } } As you can see, there are some queries within while-loops. Is there a more elegant and performant way to do those queries? I thought of JOIN, but I cannot see how to do it. Any help would be appreciated TIA Volker -- PHP Database Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php