2014-12-05 56 views
0

基本上,我創建了一個從主數據庫的mysql數據庫填充的下拉框。當進行選擇時,將調用一個AJAX函數,該函數運行查詢以顯示所有子類別。在循環下拉功能中運行mysql count命令

例如,

Primary_catagory = P

sub_catagory = S

p小號

1b中

1c中

2 d

2e中

2 F

所以當選擇在主類別製成,它會顯示或者取決於如果1 a,b和c或d,e和f或2被選中。除了最後的整型特徵之外,查詢都可以正常工作,以顯示主要特徵中包含的子類別的數量。

所以下拉框會顯示爲例如選擇A(3)和選擇B(2)。

這是我到目前爲止的代碼,但目前它顯示(1)每個結果。這是代碼。

<select id="p_catagory" name="p_catagory" onchange = "getData(this); return true;" style="position:absolute;left:0px;top:10px;width:315px;height:20px;z-index:11;text-align:left;"> 

if ($_GET['p_catagory'] == "all") { 
    <option value='all'>Show All</option> 
} 

while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)) { 
    $query2 = "SELECT * FROM db_class_catagories WHERE primary_catagory=".$var; 
    $result2 = mysqli_query($dbconnection, $query2); 
    $entries = count($result2); 

    echo "<option value='" . $row['primary_catagory'] . "'>" 
     . $row['primary_catagory'] . " " . "(" . $entries . ")" 
     . "</option>";  
} 
?> 
</select> 

我一直在這個好幾天,似乎無法找到工作,有什麼建議嗎?

感謝

+0

你能告訴'$ var'變量有什麼樣的價值 - 我能」從代碼中找出它。 – 2014-12-05 20:38:40

+0

該變量是獲得該循環的主要類別,哎呦!錯字。該行應讀取$ query2 =「SELECT * FROM db_class_catagories WHERE primary_catagory =」。$ row ['primary_catagory']; – OJ102 2014-12-05 21:17:06

+0

感謝您的回覆。 – 2014-12-05 23:27:49

回答

1

請嘗試使用:

$entries = mysqli_num_rows($result2);

,而不是舊線:

$entries = count($result2);

,我認爲它應該幫助。

+0

我最初使用了mysql命令,它什麼也沒有顯示,我無法理解爲什麼它像上面那樣寫入。循環中是否有可能會干擾的內容? – OJ102 2014-12-06 06:40:56

0

陣列功能count()sizeof()將無法​​使用下面的代碼,因爲您擁有它。

$result2 = mysqli_query($dbconnection, $query2); 
$entries = count($result2); 

這是因爲mysqli_query()不返回數組,它,而返回你可以用它來獲取結果的資源;

要獲取的行數返回,你能做到這一點

$records = mysqli_fetch_all($result2, MYSQLI_ASSOC); 
$entries = count($records); 

較短的方法將是

$entries = mysqli_num_rows($result2);