[英]I Need to Write the Same mySQL Query Twice
在PHP頁面的頂部附近,我有一個mySQL查詢,后跟一個do-while循環。
$query_offer = "SELECT offer, offer_text FROM ad_offers WHERE hid LIKE '$hid' AND show_from < CURRENT_DATE() AND show_to > CURRENT_DATE()";
$offer = mysql_query($query_offer, $MySQL_extranet) or die(mysql_error());
$row_offer = mysql_fetch_assoc($offer);
do {
SOME PHP STUFF
}while($row_offer = mysql_fetch_assoc($offer));
然后在頁面的下方,我想重復相同的do-while循環,其中包含不同的PHP代碼。 但它不起作用。 似乎系統在執行第一次執行操作后忘記了查詢結果。 如果我在第二次do-while之前重復原始查詢,它就可以工作。 但這似乎非常混亂,當然不必在同一頁面上兩次寫同一個查詢。
任何意見,將不勝感激。 謝謝。
將行分配給數組然后重用該數組
$Offers = array();
while($row_offer = mysql_fetch_assoc($offer)) {
$Offers[] = $row_offer;
}
然后通過$ Offers進一步降低你的代碼循環
在循環數據一次之后,您需要這樣做
mysql_data_seek($offer, 0);
更多信息: http : //php.net/manual/en/function.mysql-data-seek.php
注意:從PHP 5.5.0開始,不推薦使用此擴展
將結果分配給數組並再次迭代,或創建可在需要時調用的函數。
<?php
function getOffers($hid) {
$offers = array();
$query = mysql_query('SELECT ...');
while($offer = mysql_fetch_assoc($query)) {
array_push($offers, $offer);
}
return $offers;
}
$offers = getOffers($hid);
// use $offers here
// or here
// or recall getOffers($hid)
安東尼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.