2013-01-18 50 views
-1

我有一个这样的脚本:避免运行相同的MySQL脚本多次

$result = array(); 
$sql = "SELECT DISTINCT Name FROM servers"; //doesn't really matter what this MySQL script is 

//storing the same query in two different variables 
$result[0] = mysql_query($sql); 
$result[1] = $result[0]; 

for($i = 0; $i < 3; $i++) { 

    $result[0] = $result[1]; 

    while($ret = mysql_fetch_array($result[0]) { 
     //run some code 
    } 

} 

不幸的是,上面的代码执行一次,然后下一个迭代返回任何内容。我究竟做错了什么?

+2

你在这里做什么? –

+0

我试图让它不是在for循环中运行mysql_query($ sql),这使得您必须执行3次mysql操作,而只是将该变量存储并保存在for循环中以便避免额外的mysql搜索。 – user1784397

+1

而不是将数据存储在数组中,然后做任何你想做的事情。 –

回答

0

我不太确定你想做什么。但如果我明白,试试这个。删除for循环,只需放入while循环并做任何你想做的事情。

$sql = "SELECT DISTINCT Name FROM servers"; 
$result = mysql_query($sql); 
    while($ret = mysql_fetch_array($result) { 
     //run some code 
     echo $ret['Name']; 
    } 
} 

您将在每次迭代中获得所有3条记录,并执行您想要为每条记录执行的过程。不需要对3条记录进行三次查询。一个查询将包含所有记录,并在循环中获取每条记录。希望能帮助到你。