此代码将成员列表汇总在一起,然后列出他们在类别中添加的所有项目,然后将所有这些信息输出到表格中。
以下是3个表格布局:
Members
member_id - fname - lname - etc.
Items
member_id - item_id - etc.
Categories
name - etc.
当前代码需要FOREVER加载:
<?php $sql="SELECT * FROM members ORDER BY lname, fname ASC";
$result=mysql_query($sql);
while($rows=mysql_fetch_array($result)){ ?>
<? echo('Name'); ?>
<? echo $rows[fname];?> <? echo $rows[lname];?>
<? $sql2="SELECT * FROM leadtypes ORDER BY name ASC";
$result2=mysql_query($sql2);
while($rows2=mysql_fetch_array($result2)){ ?>
<? echo $rows2[name];?>
<? echo(': '); ?>
<? $sql4="SELECT lead_id FROM leads WHERE member_id='$rows[member_id]' AND type='$rows2[name]' ORDER BY name ASC";
$result4=mysql_query($sql4);
$num4 = mysql_num_rows($result4); ?>
<? echo $num4;?>
<? } ?>
<? } ?>`
我知道我不应该查询*但这是测试服务器上的一段非常简单的代码。如果有人知道将所有这些结合在一起以加速系统的好方法,我将不胜感激。
答案 0 :(得分:0)
尝试执行一次连接而不是多次查询。例如,
SELECT lt.*, l.lead_id FROM leadtypes lt, leads l WHERE l.member_id=lt.member_id AND l.type=lt.name ORDER BY l.name ASC
如果那个查询仍然很慢,则意味着您需要在表上添加索引。
答案 1 :(得分:0)
试试这个
$sql = SELECT A.lead_id,B.name,C.fname,C.lname
FROM leads A
JOIN leadtypes B ON A.type = B.name
JOIN members C ON A.member_id = C.member_id
你可以回复这个
$rs = mysql_query($sql);
while($rows = mysql_fetch_array($rs)){
echo $row['name'];
echo $row['fname'];
}
看一下这些链接