2013-01-18 75 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條記錄進行三次查詢。一個查詢將包含所有記錄,並在循環中獲取每條記錄。希望能幫助到你。