我正在尋找如何從數據庫中獲取不同MySQL查詢的幫助,具體取決於動態PHP下拉菜單。以下是我迄今爲止所做的一切(1.創建數據庫,2.創建PHP動態下拉列表,3.掙扎部分 - 如何獲取HTML/PHP表單將根據選擇的動態下拉列表更改它的MySQL查詢第2步)。動態MySQL查詢取決於動態PHP下拉
這裏是我創建數據庫:
CREATE TABLE computers (
id int(3) NOT NULL auto_increment primary key,
pc_make varchar(25) NOT NULL default '',
pc_model varchar(25) NOT NULL default ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO computers VALUES (1, 'Dell', 'Latitude');
INSERT INTO computers VALUES (2, 'Dell', 'Inspiron');
INSERT INTO computers VALUES (3, 'HP', 'Pavilion');
INSERT INTO computers VALUES (4, 'HP', 'Spectre');
INSERT INTO computers VALUES (5, 'Lenovo', 'Thinkpad');
INSERT INTO computers VALUES (6, 'Lenovo', 'Ideapad');
這裏是產生動態下拉的部分(這讓我的3點不同的記錄結果:「戴爾」,「HP」和「聯想」 ):
<?
$connect = mysqli_connect('localhost', '', '', '');
$sql="SELECT DISTINCT(pc_make) AS pc_make FROM computers ORDER BY pc_make ASC";
$result = mysqli_query($connect, $sql);
if(mysqli_num_rows($result) > 0){
$output= '<select name="listofpcmakes">';
while($rs = mysqli_fetch_array($result)){
$output.='<option value="'.$rs['id'].'">'.$rs['pc_make'].'</option>';
}
}
$output.='</select>';
echo $output;
?>
而且下面是我的嘗試只會顯示來自動態創建的下拉菜單選擇pc_make(例如戴爾,這將導致2條匹配的記錄)。看起來我只是在這裏碰壁。
<html>
<body>
<form id="my_form" name="my_form" method="post">
<table class="table">
<thead>
<tr>
<th>id</th>
<th>pc_make</th>
<th>pc_model</th>
</tr>
</thead>
<tbody>
<?PHP
$sql_final="SELECT * FROM computers WHERE pc_make = (how to capture the 'selected pc_model' from the dynamically generated dropdown???) ";
$result_final = mysqli_query($connect, $sql_final);
while ($myrow = mysqli_fetch_array($result_final))
{
?>
<tr>
<td><?PHP echo $myrow["id"]; ?></td>
<td><?PHP echo $myrow["pc_make"]; ?></td>
<td><?PHP echo $myrow["pc_model"]; ?></td>
</tr>
<?PHP
}
?>
</body>
</html>
要重申這個問題,我應該怎麼建立HTML表單的一部分,只取了它從動態生成的下拉列表中選擇一個製造商(戴爾,惠普或聯想)記錄(pc_make,pc_model) 。我試圖避免創建靜態mysql查詢,因爲製造商名單可能會在未來發生重大變化。
感謝所有提前提供援助之手......
一方面,這個'while($ myrow = mysql_fetch_array($ result_final))'不會發生。 –
謝謝Fred,快速回復。我是一個初學者,你能提出一個正確的方法嗎? – theCurious
首先將'mysql_fetch_array'更改爲'mysqli_fetch_array',然後查看您的HTML源代碼,通過php和查詢檢查錯誤,使用'var_dump($ any_variable);'查看通過與否。 –