2013-03-16 70 views
0

我對PHP很陌生,正在嘗試製作一個PHP腳本,它假設連接到一個MySQL數據庫並獲取該值,然後顯示爲一個選項下拉式菜單。使用php讀取mysql並在下拉菜單中顯示結果

這是代碼我迄今(借朋友的幫助):

$username = "root"; 
$password = ""; 
$hostname = "localhost"; 
$database = "customers"; 
$id = ""; 

mysql_connect("$hostname", "$username", "$password") or die (mysql_error()) or die (mysql_error()); 

mysql_select_db("$database") or die (mysql_error()); 

$result = mysql_query("SELECT id FROM users WHERE id='$id'") or die(mysql_error()); 
     while ($row = mysql_fetch_assoc($result)) { 
     $valuestring = $row['id']; 
     print_r($result); 
      echo "<option value='$valuestring'>". $valuestring ."</option>"; 
      mysql_close(); 
     } 
print_r($id); 

但是,當我使用此代碼的選項返回空:/

我也試圖做的print_r($結果);並給我資源ID#4,所以我想這是可行的。

如果有人可以幫助我解決這個我會是一個快樂的傢伙:d

+0

'的print_r($行)',而不是'的print_r($結果)'看看你是否有預期的結果。 「$ id」爲空是否正常? – Tchoupi 2013-03-16 22:44:55

+0

嗨。嘗試以'echo'開始「;' – Martina 2013-03-16 22:46:21

+0

第二個想法...'SELECT id FROM users WHERE id ='$ id'' makes no感。你正試圖獲得你正在尋找的同樣的價值? – Tchoupi 2013-03-16 22:47:26

回答

0

$值在代碼中的ID是空的,你的那個阿瓦雷? 並且可以在將它發送到mysql之前打印查詢? 使用:

"$query = "select id from table where id = '$id'"; 
mysql_query($query); 
echo $query; 
+0

當我使用你發佈的代碼時,我得到「資源ID#4」 – kagstrom2100 2013-03-17 15:59:31

0

也許如果你告訴我們你輸出了什麼,它會有幫助。如果輸出包括在循環內生成的HTML那麼這意味着查詢返回至少1行

選項返回空

。但echo "<option value='$valuestring'>"會產生一個空字符串的唯一方法是如果$ valuestring是一個空字符串。它的填充來自「SELECT id FROM users WHERE id ='$ id'」,意味着你必須在你的數據庫中有一行id爲null或者一個空字符串 $ php在你的php代碼中爲null /空字符串 - 確實就是這樣($ id =「」;)。

NTW mysql_close();應該在循環之外。

0

讓我們來簡化這個代碼:

<select name="user" id="user" width="200px" style="width: 200px"> 
<option value="">Select State</option> 
<?php  
$query_uf = "SELECT id FROM users WHERE id="'.$id.'";  
$result = mysql_query($query_uf,$bd);  
while ($users =mysql_fetch_assoc($result)) { 
echo "<option value='".$uf['id']."'>".$uf['user']."</option>";  } 
?> 
</select> 

觀測數據:這是更好地使用mysqli_query和連接。而且,在你的代碼中,它缺少mysql_query中的連接。

0

我以前需要使用類似的方法從表中檢索相冊列表,也許試試這個功能。創建你的表單並在和標籤內調用該函數以使其工作。這應該在查詢中指定您的id(s)。

的functions.php(或任何你想放的功能):

function stateList() { 
$username = "username"; 
$password = "password"; 
$host = "localhost"; 
$dbname = "dbname"; 
$id = RETRIEVE VALUE HERE; 
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'); 
$db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options); 
$query = " 
    SELECT 
    id, 
    FROM users 
    WHERE 
    id = $id // YOU MAY WANT TO REMOVE WHERE - $ID AS STATED ABOVE, DOESN'T MAKE SENSE. 
    "; 

    try 
    { 
     $stmt = $db->prepare($query); 
     $stmt->execute(); 
    } 
    catch(PDOException $ex) 
    { 
     die("Failed to run query: " . $ex->getMessage()); 
    } 
     $valuestring = $row['id']; 
    $rows = $stmt->fetchAll(); 
foreach($rows as $row): 
    print "<option value='" . $valuestring . "'>" . $valuestring . "</option>"; 
endforeach; 
} 
?> 

選擇頁:

<? include 'functions.php' ?> <!-- This will allow you to call the function. --> 
<form action="example.php" method="post" enctype="multipart/form-data"> 
    <select name="album"> 
     <? stateList(); ?> <!-- Calls the function and retrieves all options --> 
    </select> 
    <input type="submit" name="submit" value="Submit"> 
    </form>