Şu anda kişisel bir proje olarak bir forum tasarlama. Ben geldim yinelenen konulardan biri döngüler veritabanı sorgularını. Ben tablo birleşimler kullanarak veya daha sonra kullanmak üzere dizilerdeki verilerin önbelleğe tarafından şimdiye kadar bunu önlemek için idare ettik.
Şu anda olsa ben ben kolayca bu yöntemlerden birini kullanabilirsiniz şekilde kod yazmak nasıl emin değilim bir durum geldim. Ancak ben yine de şimdiye kadar sayfa başına 5 sonuçlandı forumlar, grup başına bu operasyon yerine + 1 1 için en fazla 2 sorguları yapmak için tercih ediyorum. 5 büyük numarası (ben eklediğiniz her forum grup için artacak olsa da) burada benim için önemli ilkedir değil iken Yani, ben döngüler sorguları yazmak istemediğin
Ne yapıyorum forum endeksi gruplaşmaları (örneğin yönetici forumlar, kullanıcı forumları, vb) ve daha sonra tek bir sayfa indeks o grup içindeki her bir forum, bana sorunu mucip bir sayfada hem kombinasyonu görüntüleniyor. Sadece sayfa başına tek bir grup olsaydı, ben bir tablo katılmak ve sorun çözüldü kullanmak istiyorum. Ama ben, bir tablo burada birleştirme kullanırım ben potansiyel olarak tüm verileri alabilirsiniz, ancak ben bunun sonuçlarından biri kitle olacak lüzum ve düzgün görüntülenmesi gerekiyorsa.
İşte kod (netlik için html bazı kaldırdık) bulunuyor
<?php
$sql= "select * from forum_groups"; //query 1
$result1 = $database->query($sql);
while($group = mysql_fetch_assoc($result1)) //first loop
{?>
<table class="threads">
<tr>
<td class="forumgroupheader"> <?php echo $group['group_name']; ?> </td>
</tr>
<tr>
<td class="forumgroupheader2"> <?php echo $group['group_desc']; ?> </td>
</tr>
</table>
<table>
<tr>
<th class="thforum"> Forum Name</th>
<th class="thforum"> Forum Decsription</th>
<th class="thforum"> Last Post </th>
<tr>
<?php
$group_id = $group['id'];
$sql = "SELECT forums.id, forums.forum_group_id, forums.forum_name, forums.forum_desc, forums.visible_rank, forums.locked, forums.lock_rank, forums.topics, forums.posts, forums.last_post, forums.last_post_id, users.username
FROM forums
LEFT JOIN users on forums.last_post_id=users.id
WHERE forum_group_id='{$group_id}'";
//query 2
$result2 = $database->query($sql);
while($forum = mysql_fetch_assoc($result2))
//second loop
{?>
So how can I either
a) write the SQL in such a way as to remove the second query from inside the loop or
b) combine the results in an array
either way I need to be able to access the data as an when so I can format it properly for the page output, ie within the loops still.