doddsey_65 Posted April 17, 2010 Share Posted April 17, 2010 Okay here is the code. I want to run another SELECT * query within this while loop, which i thought could be done but i cant get it to work. I want the query to select the comments from the comments table in the database that matches the id of the tutorial. <?php $i = 0; $result = mysql_query("SELECT * FROM tutorials ORDER BY added ASC LIMIT 4") or die(mysql_error()); while($row = mysql_fetch_object($result)) { if($i==2) { echo '</tr><tr><td>'; $i=0; } if ($row->category == 1) { $row->category = 'Animation'; } if ($row->category == 2) { $row->category = 'Basics'; } if ($row->category == 3) { $row->category = 'Cloth'; } if ($row->category == 4) { $row->category = 'Compositing'; } if ($row->category == 5) { $row->category = 'Dynamics'; } if ($row->category == 6) { $row->category = 'Fluid'; } if ($row->category == 7) { $row->category = 'Game Engine'; } if ($row->category == { $row->category = 'General'; } if ($row->category == 9) { $row->category = 'Lighting'; } if ($row->category == 10) { $row->category = 'Modelling'; } if ($row->category == 11) { $row->category = 'Modifiers'; } if ($row->category == 12) { $row->category = 'Particles'; } if ($row->category == 13) { $row->category = 'Rendering'; } if ($row->category == 14) { $row->category = 'Rigging'; } if ($row->category == 15) { $row->category = 'Scripts'; } if ($row->category == 16) { $row->category = 'Sculpting'; } if ($row->category == 17) { $row->category = 'Texturing'; } if ($row->category == 18) { $row->category = 'Tips and Tricks'; } if ($row->category == 19) { $row->category = 'UV Mapping'; } ?> <table style="background-image:url(images/tut_back.png); background-repeat: repeat-y; border:1px solid #C2D0DC; width:100%;"> <tr> <td class="tutorials_left" valign="top"> <div class="tutorial_icon"><a href="tutorials.php?id=<?php echo $row->id; ?>"> <img src="<?php echo $row->path; ?>" alt="Tutorial Icon" class="tutorial_icon" width="50" height="50"></a> </div> </td> <td class="tutorials_right" valign="top"> <div class="tutorial_title"><a href="tutorials.php?id=<?php echo $row->id; ?>"><?php echo $row->name; ?></a> </div> <div class="tutorial_uploaded"> Uploaded by <?php echo $row->fullname; ?> on <em><?php echo $row->added; ?></em> </div> <div class="tutorial_cat">Category: <?php echo $row->category; ?> </div> </td> </tr> </table> <?php if ($row->RatedBy == 0) { $avg = 0; } else { $avg = $row->Rating/$row->RatedBy; $avg = round($avg, 2); } ?> <div class="tutorial_bar"> <table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td class="views">Views: <em><?php echo $row->views; ?></em></td> <td class="comments">Comments: <em>3</em></td> <td class="rating">Rating: <?php echo $avg; ?></a></td> </tr> </table> </div> <td> <?php $i++; } ?> Quote Link to comment https://forums.phpfreaks.com/topic/198885-another-query-within-a-while-loop/ Share on other sites More sharing options...
trq Posted April 18, 2010 Share Posted April 18, 2010 Executing a new SELECT query within a loop is a very inefficient way of obtaining related data. Google yourself a tutorial on using an sql JOIN and get all your data within one query. Quote Link to comment https://forums.phpfreaks.com/topic/198885-another-query-within-a-while-loop/#findComment-1043977 Share on other sites More sharing options...
TeddyKiller Posted April 18, 2010 Share Posted April 18, 2010 why have it like that I don't know. Usually... the while, would display the tutorials by title on one page. Clicking on the tutorial title goes to viewtutorials.php?tutid=$tutid So when on that page, it gets all the nessecary details where tutorial_id = $_GET['tudid'] Easier method I believe? Although you have categories.. I didn't quite use that.. so .. might be in the same way I guess, it'll display the tutorials by title where category is .. php for example. Quote Link to comment https://forums.phpfreaks.com/topic/198885-another-query-within-a-while-loop/#findComment-1043981 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.