2014-12-13 163 views
1

我有這個code.it是一個下拉列表和一個提交按鈕。 我有一個查詢「SELECT * DISTINCT column_name FROM table_name」,其結果爲15的值動態下拉列表 - 從mysql獲取值

現在,我想採取這些查詢的值,並在選項= ..... field.動態地輸入它們。 「NAME」部分必須與值相同。 例如:IF值1 = 「ABCD」

<option value="abcd" >abcd</option>

<!DOCTYPE html> 
 
<html> 
 
<body> 
 
<form method="post" target=".....php"> 
 
<select name="exa" > 
 
    <option value="value1" >NAME 1</option> 
 
    <option value="value2" >NAME 2</option> 
 
    <option value="value3" >NAME 3</option> 
 
\t <option value="value4" >NAME 4</option> 
 
    <option value="value5" >NAME 5</option> 
 
    <option value="value6" >NAME 6</option> 
 
\t <option value="value7" >NAME 7</option> 
 
    <option value="value8" >NAME 8</option> 
 
    <option value="value9" > NAME 9</option> 
 
\t <option value="value10" >NAME 10</option> 
 
    <option value="value11" >NAME 11</option> 
 
    <option value="value12" >NAME 12</option> 
 
\t <option value="value13" >NAME 13</option> 
 
    <option value="value14" >NAME 14</option> 
 
    <option value="value15" >NAME 15</option> 
 
</select> 
 

 
<form action=$value> 
 
<input type="submit" value="GO!" /> 
 
</form> 
 
</body> 
 
</html>

我做了這一點,但沒有工作

<!DOCTYPE html> 
 
<html> 
 
<body> 
 
<form method="post" > 
 
<select name="exa" > 
 
<?php 
 
include_once "LOGIN TO DB SCRIPT"; 
 
$query_ak='SELECT DISTINCT (column_name) FROM table_name'; 
 
$result = mysql_query ($query_ak) or die (mysql_error); 
 
    
 
    while ($row = mysql_fetch_assoc($result)) { 
 
    \t } 
 
\t ?> 
 
\t <option value = $row['ak_ex']> "$row['ak_ex']"</option> 
 
    
 
<input type="submit" value="GO!" name="go"/> 
 
</select> 
 
</form> 
 
</body> 
 
</html>

+0

注意與mysqli的工作是DISTICT不是函數 – Strawberry 2014-12-13 17:44:20

回答

1

你已經做了很多的錯誤,首先你已經把OPTION對象WHILE循環外面,然後你把選擇對象內提交按鈕,你到底寫不同的功能,正確的語法如下。

我建議你使用mysqli來避免安全問題,因爲mysql會被取消。使用include也不是include_once,因爲它需要額外的PHP來渲染文件(差別不大,但一切都歡迎)。

我已經修改爲使用它的代碼,你會發現所有的信息來修改你的腳本在http://php.net/manual/it/book.mysqli.php

<html> 
    <body> 
    <form method="post" > 
    <?php 
    // LOGIN TO DATABASE SCRIPT WRITTEN FOR MYSQLI 
    $mysqli = new mysqli("localhost", "user", "password", "database"); 
    if ($mysqli->connect_errno) { 
     echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " .   $mysqli->connect_error; 
    } 
    // END OF LOGIN TO DB SCRIPT 
    include DATABASE CONFIGURATION; 
    $query_ak='SELECT DISTINCT column_name FROM table_name'; 
    $result = $mysqli->query($query_ak); 
    ?> 
    <select name="exa" > 
     <?php 
     while ($row = mysqli_fetch_assoc($result)) { 
      echo '<option value="'.$row['ak_ex'].'">'.$row['ak_ex'].'</option>'; 
     } 
     ?> 
    </select> 
    <input type="submit" value="GO!" name="go"/> 
    </form> 
    </body> 
    </html> 
+0

是有可能採取的選擇$ row ['ak_ex']並檢查其值在不同的框架? – user3314027 2014-12-14 19:10:03

+1

是的,您必須調用MySQL腳本並使用IF語句檢查行ak_ex的值並打印結果。 如果這解決了您的問題,請選擇一個已接受的答案,否則人們將無法回答您的問題。 謝謝 – markserver 2014-12-15 14:29:26

+0

我這樣做,不工作 $ query_ak ='SELECT DISTINCT(ak_ex)FROM table_name'; \t $ result_ak = mysql_query($ query_ak)或die(mysql_error()); \t \t \t如果(isset($ _ POST [ '去']))\t {\t // elegxei一個到 \t \t而($行= mysqli_fetch_assoc($ result_ak)){ \t \t如果($ _POST [「exa」] =「。$ row ['ak_ex']。」)\t { \t \t \t $ query =「SELECT * FROM table_name where ak_ex ='。$ row ['ak_ex']。'」; \t \t \t $ result = mysql_query($ query)or die('Query failed:')。mysql_error()); – user3314027 2014-12-20 09:56:31

1

您應該將<option>...</option>置於循環內。將提交按鈕放在</select>標記之外。你也有語法錯誤。 mysql_error應該是mysql_error()

<!DOCTYPE html> 
<html> 
<body> 
<form method="post" > 
<?php 
include_once "LOGIN TO DB SCRIPT"; 
$query_ak='SELECT DISTINCT (column_name) FROM table_name'; 
$result = mysql_query ($query_ak) or die (mysql_error()); 
?> 
<select name="exa" > 
    <?php 
    while ($row = mysql_fetch_assoc($result)) { 
     echo '<option value="'.$row['ak_ex'].'">'.$row['ak_ex'].'</option>'; 
    } 
    ?> 
</select> 
<input type="submit" value="GO!" name="go"/> 
</form> 
</body> 
</html>