2011-11-02 118 views
0

在我的网站页面的标题中,我有多个SQL查询。例如:合并多个SQL查询

$sql_result = mysql_query("SELECT blah2 FROM misc WHERE id='1'", $db); 
$rs = mysql_fetch_array($sql_result); $blah2 = $rs[blah2]; 

$sql_result = mysql_query("SELECT * FROM ip_bans WHERE IP='$ip'", $db); 
if (mysql_num_rows($sql_result) != 0) { header("Location: banned.php"); } 

$sql_result = mysql_query("SELECT * FROM accounts WHERE username='$un' AND pw='$pw'", $db); 
$rs = mysql_fetch_array($sql_result); 
// do all account login check etc 

$sql_result = mysql_query("SELECT * FROM members WHERE id='$id'", $db); 
$rs = mysql_fetch_array($sql_result); 
// get members data 

..等等。

我的网站的每一页都需要所有这些信息。有没有一种方法来结合这些,或者只是限制查询的数量?我会想象随着时间的推移,数据库会变得非常密集。

我不太喜欢JOIN和东西,那是我需要的吗?

+0

“我想象会随着时间的推移对数据库产生相当大的压力”由于其硬件和数据库大小的不同,它很难说没有测量。如果你有足够的内存,它可能根本不成问题,因为它总是从RAm –

+0

ouch @ sql注入获得数据! – Kris

回答

0

您想使用UNION
这里是一个很好的教程:http://www.tizag.com/sqlTutorial/sqlunion.php

我会建议你只使用它,它是“自然”,而不是合并到许多不同的查询。

+0

它在这里说:“为了执行联盟,表1的列必须匹配表2的列。”我的每个表格都不同,所以我可以使用它吗? – user961882

+1

我不认为一个联盟会工作,因为每个查询的列和类型可能不同。 –

+0

啊,忘记了。所以你是对的。 – Steven