用php读取mysql并在下拉菜单中显示结果

时间:2013-03-16 22:42:32

标签: php mysql

我是php的新手,并且正在尝试创建一个PHP脚本,它假设连接到mysql数据库并获取vaule id,然后在下拉菜单中显示为选项。

这是我到目前为止的代码(得到了朋友的帮助):

$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($ result);并且这给了我资源ID#4,所以我猜这有效。

如果有人能帮我解决这个问题,那我就是一个快乐的人:D

4 个答案:

答案 0 :(得分:0)

代码中的$ id值为空,您知道吗? 并且可以在将查询发送到mysql之前打印查询吗? 使用:

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

答案 1 :(得分:0)

也许如果你向我们展示了你所做的输出会有所帮助。

  

该选项返回空

如果输出包含循环内生成的HTML,则表示查询返回至少1行。但是echo "<option value='$valuestring'>"产生空字符串的唯一方法是$ valuestring是一个空字符串。它来自&#34; SELECT id FROM users WHERE id =&#39; $ id&#39;&#34;暗示你的数据库中必须有一行id为null或者你的php代码中的空字符串 $ id是null /空字符串 - 的确如此($ id =&#34 ;&#34 ;;)。

NTW mysql_close();应该在循环之外。

答案 2 :(得分: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>

Obs:你使用mysqli_query并连接它会更好。并且,在您的代码中,它错过了mysql_query中的连接。

答案 3 :(得分:0)

我以前需要使用类似方法从表中检索专辑列表,也许可以尝试此功能。创建表单并调用和标签中的功能,使其工作。这应列出您在查询中指定的ID。

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>