簡體   English   中英

我需要寫兩次相同的mySQL查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM