2012-09-11 58 views
0

我試圖重置我的變量中的數據,所以我可以再次調用它。如果第一個查詢中有數據,我需要它來運行重置。首先我要檢查數據,其次,如果有數據,我將索引設置回0.mysql_data_seek和mysql_num_rows

這適用於我的localhost環境,但不適用於我的實時環境。我知道我得到了我得到的錯誤,因爲第一個查詢沒有找到任何結果,所以mysql_num_rows($query)是空的。

我得到的錯誤:Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource.

(此代碼的工作,當第一查詢輪番上漲的結果,成功復位和顯示第二查詢。)

if (mysql_num_rows($query)){ 
    mysql_data_seek($query, 0); 
} 

是否有更好的方法可以檢查如果第一個查詢有信息,如果沒有找到任何信息,不會吐出錯誤?

+0

你需要倒帶結果的任何理由?並不是所有的版本/ php mysql驅動程序的配置都支持這個。一個更好的方法是使用一次遍歷結果將結果提取/保存到php數據結構中,然後在需要使用/重用數據的任何位置使用該數據結構。 –

+1

我覺得在查詢中存在一些錯誤,說實話。我使用過'num_rows'來返回'0'。 – Eric

+0

請不要使用mysql_函數,使用PDO或至少MySQLi ...你只是要求麻煩.. – Stephen

回答

1

請注意有關使用mysql_的其他註釋?功能。

如果您因某種原因不止一次遍歷結果,請在Marc B評論時將它們轉儲到數組中。例如(仍然使用你的mysql_?函數);

$result = mysql_query($query); 
if (!$result) { 
    echo 'Could not run query: ' . mysql_error(); 
    exit; 
} 
while($row = mysql_fetch_row($result)){ 
    $myResultSet[]=$row; 
} 

一次完成,我們可以經常爲我們喜歡

foreach($myResultSet as $row){ # note foreach resets each time 
    # do stuff with $row['fieldname'] 
} 

通過一系列迭代你應該利用這個機會但是更新您的mysql_更多的最新方法...這根本解決方案將保持不變。

如果沒有回答它,發佈更多代碼,以便我們能夠理解您爲什麼以及您想要做什麼。