2013-12-12 48 views
1

我剛學習PHP/MySQL,並花了幾天的時間嘗試從我的數據庫中獲取下拉菜單來填充選項。我已經閱讀了幾個教程,並嘗試應用它們,但是我無法實現這個工作。PHP/MySQL Dropdown

我想要做的事: 我需要一個名爲「基因型」,拉在我指定的數據庫表中的「基因型」列基因型的列表下拉菜單中的「老鼠」。

問題:當我點擊提交按鈕,它連接到我的數據庫,並執行查詢。但我無法從下拉菜單中顯示任何選項。

這裏是我到目前爲止的代碼(請讓我知道我是否應該張貼mousecount.php)

<?php 

include('connection.txt'); 

$conn = mysqli_connect($server, $user, $pass, $dbname, $port) 
or die('Error connecting to MySQL server.'); 
?> 

<html> 
<head><title>Crap That Won't Work</title></head> 
<body bgcolor="white"> 

<hr> 
<dt>THINGS ARE TOTALLY NOT WORKING</dt> 
<dd> 
<form action="mousecount.php" method="POST"> 
<table><tr> 
<td><p><label for="Genotype">Genotype:</label><br/> 
<select name="Genotype"> 
<?php 
$query = "SELECT MouseID, Genotype FROM Mice"; 
$result = mysqli_query($conn, $query); 
while($row = mysqli_fetch_array($result)) 
{ 
print "<option value=\"$row['Genotype']\">".$row['Genotype']."</option>"; 
} 
?> 
</select> 
</p></td> 
</tr></table><br/> 
<input type="submit" value="Submit"> 
</form> 
</body> 
</html> 


編輯(解決):

我有麻煩下拉菜單用MySQL數據庫中的選項填充。感謝您的幫助。我發佈我的最終代碼,以防止其他人遇到問題。

<!-- Connect to database --> 
<?php 
include('connection.php'); 
$conn = mysqli_connect($server, $user, $pass, $dbname, $port) 
or die (mysql_error()); 
?> 

<hr> 

<h4>Mice Count</h4> 
<form action="mousecount.php" method="POST"> 
<p><label for="Genotype">By Genotype:</label><br/> 
<?php 
$query = "SELECT Genotype from Mice GROUP BY Genotype"; 
$result = mysqli_query($conn, $query); 
echo "<select name='Genotype'>"; 
echo "<option value='0'>-Select-</option>"; 
while($row = mysqli_fetch_array($result)) { 
    echo "<option value='".$row['Genotype']."'>".$row['Genotype']."</option>"; 
} 
echo "</select>"; 
?> 
</p> 
<input type="submit" value="Submit"> 

</form> 

</body> 
</html> 
+0

AFAIK,所述'E_NOT_WORKING'不是常見PHP錯誤代碼。 –

+0

@tereško這是非常常見的SO,但沒有用處:) – vascowhite

+0

最好將您的成功代碼作爲編輯發佈,而不是替換原來的問題。擦除原始代碼會使其他編碼人員難以確定問題/解決方案。 – showdev

回答

0

請參閱php.net manual,因爲我沒有看到提取方法。

+0

謝謝!我將它改爲:while($ row = mysqli_fetch_array($ result))現在這個時髦的代碼已經從下拉菜單中消失了,但它仍然沒有從我的數據庫中提取任何東西。 – SummerEla

+0

$ rows = mysqli_fetch_array($ result); foreach($ rows AS $ row){ \t print「」; } – LisaK1308

+0

謝謝......它沒有工作。下拉菜單仍然是空的。這裏有一個鏈接,如果有幫助的話,結果如下: http://ix.cs.uoregon.edu/~summere/index.html – SummerEla

0

connection.txt有什麼?
如果你有連接變量寫在上面,使它成爲一個php文件而不是txt,然後包含它。

+0

無論您傳遞給include的文件名是否會通過解釋器。這導致幾年前的c99 shell漏洞,並導致默認禁用的URL包含('include('http://malicious.site/c99.shell.txt');') – DanFromGermany

+0

謝謝@srikanta mondal!現在該查詢會提取結果,但下拉菜單仍不能從數據庫中提取選項。 – SummerEla

0

連接到數據庫第一

$con=mysqli_connect("localhost","username","password","dbname"); 
if (mysqli_connect_errno()) 
{ printf("Connect failed: %s\n", mysqli_connect_error()); 
exit(); } 

$result = mysqli_query($con, "select MouseID, Genotype FROM Mice"); 
while ($row = mysqli_fetch_assoc($result)){ ?> 
<option value="<?php echo $row['Genotype']; ?>"><?php echo $row['Genotype']; ?></option> 
+0

謝謝!我有一個變量:$ conn = mysqli_connect($ server,$ user,$ pass,$ dbname,$ port) \t或die('連接到MySQL服務器時出錯。 指向連接信息的connection.php文件。它連接正確,下拉只是不給我任何選擇。 – SummerEla

-1

首先你需要添加與此代碼的幫助下連接到數據庫。

<?php 
$con = mysql_connect("localhost", "root", "") or die("Failed to connect to MySql."); 
mysql_select_db("demo", $con) or die("Failed to connect to database"); 
?> 

然後這是你的下拉菜單,所有的值都來自數據庫。

<select name="country" class="country"> 
<option selected="selected">--Select Country--</option> 
<?php 
$sql=mysql_query("select * from countries order by id ASC"); 
while($row=mysql_fetch_array($sql)) 
{ 
echo '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 
} ?> 
</select> 
+0

謝謝!我有一個變量,我從我的$ result變量調用:$ conn = mysqli_connect($ server,$ user,$ pass,$ dbname,$ port)或die('連接到MySQL服務器的錯誤'。 然後我把它叫做: $ result = mysqli_query($ conn,$ query); 然後它指向帶連接信息的connection.php文件。它連接,當我點擊提交按鈕時,它執行查詢,但下拉菜單不包含任何選項。 – SummerEla

+3

爲什麼你使用已過時和不安全的mysql_query()? – MSA

+0

$查詢的值是什麼? – vaibhav

0

現在您可以使用此代碼... 首先進行與數據庫的連接。

<?php 
$conn = mysqli_connect("localhost", "root", "") or die('Error connecting to MySQLserver.'); 
mysqli_select_db($conn, "demo") or die("Failed to connect to database"); 
?> 

將值提取到您的下拉菜單中使用的數據庫&。

<select name="country" class="country"> 
<option selected="selected">--Select Country--</option> 
<?php 
$sql=mysqli_query($conn, "select * from countries order by id ASC"); 
while($row=mysqli_fetch_array($sql)) 
{ 
echo '<option value="'.$row['id'].'">'.$row['name'].'</option>'; 
} ?> 
</select>