2010-09-07 63 views
0

有沒有辦法將我發佈的代碼顯示在下拉列表中只顯示記錄數量。我不是在談論MySQL中的LIMIT 0,5。我有1000個記錄,它導致IE掛起。 Firefox很快。如果有人能給我一些指導,我會很感激。謝謝。只在下拉列表中顯示X條記錄

<p><fieldset><legend class="style8">Select a Box</legend> 

     <select name="suggestTextField1" id="suggestTextField1"> 
     <option value="">Select a Box</option> 
     <?php 
do { 
?> 
     <option value="<?php echo $row_rsSuggest1['boxref']?>"><?php echo $row_rsSuggest1['boxref']?></option> 
     <?php 
} while ($row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1)); 
    $rows = mysql_num_rows($rsSuggest1); 
    if($rows > 0) { 
     mysql_data_seek($rsSuggest1, 0); 
    $row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1); 
    } 
?> 
     </select> 
     </fieldset> 
     </p> 


$colname_rsSuggest1 = "-1"; 
if (isset($_SESSION['kt_idcode_usr'])) { 
    $colname_rsSuggest1 = (get_magic_quotes_gpc()) ? $_SESSION['kt_idcode_usr'] : addslashes($_SESSION['kt_idcode_usr']); 
} 
mysql_select_db($database_conn, $conn); 
$query_rsSuggest1 = sprintf("SELECT DISTINCT `boxref` FROM `files` WHERE customer = '%s' AND boxstatus = 1 ORDER BY boxref ASC", $colname_rsSuggest1); 
$rsSuggest1 = mysql_query($query_rsSuggest1, $conn) or die(mysql_error()); 
$row_rsSuggest1 = mysql_fetch_assoc($rsSuggest1); 
$totalRows_rsSuggest1 = mysql_num_rows($rsSuggest1); 
+4

爲什麼你想獲取所有1000+行然後只顯示/使用其中5個? – BoltClock 2010-09-07 22:04:44

回答

1

除非您在代碼中稍後使用所有記錄,否則最好使用LIMIT子句。這將通過擴展加快查詢和腳本。看看那裏的一些分頁腳本來開始。

1

您可以更改您的do{}while()循環,即插入<option>以在5循環後停止,但如果您只打算使用5,則更好的答案是僅從數據庫中獲取5。

+0

抱歉,夥計們。我沒有使用5.我只把這個作爲例子,所以你沒有想到我正在尋找MySQL限制選項。謝謝 – 2010-09-07 22:24:48

+1

好吧,不管你的限制是什麼,你只應該查詢你會用什麼。 – Robert 2010-09-07 22:38:17

+0

我也許認爲它會工作,說有加載的前100個記錄,然後在用戶滾動列表時引入下一個100或任何其他內容?如果我使用LIMIT,我如何獲得剩餘記錄?謝謝 – 2010-09-08 08:51:20

0
$i = 0; 
while ($i < x) { 
$i++; 
echo the records 
} 

這會工作,我覺得

1

可以完成通過將尋呼到您的下拉列表。這個想法是一次只顯示一些項目,並提供允許用戶查看更多的後退/下一步按鈕。這很容易通過第三方庫來完成,但您也可以使用CSS和Ajax自己完成。

搜索帶分頁支持的下拉列表。我沒有使用PHP,所以我不能指出你有任何好的PHP庫。似乎有一些東西在http://www.nitobi.com/products/combobox/paging/聲稱是PHP兼容,但在Firefox中似乎不起作用。您也可以使用YUI Paginator(http://developer.yahoo.com/yui/paginator/)建立您自己的分頁下拉列表。

另一種方法是將Ajax搜索支持添加到您的下拉列表中。這將允許用戶輸入他們正在搜索的內容,從而將列表從數千個減少到希望更小的列表。這是相當普遍的,所以你不應該有麻煩找到庫來做到這一點。