使用数据库值填充下拉列表

时间:2014-01-21 14:57:16

标签: php mysql

我想使用数据库中特定字段的数据填充下拉列表。这是我的示例代码

<?php

$con = mysql_connect("localhost","root","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("disertation ", $con);
$results = mysql_query("SELECT name FROM user_parent;");
?>

<select name="name">
                    <option value="name">Select one</option>
                    <?php
                         while($row=mysql_fetch_array($results))
                              { echo '<option value=" ' . $row['name'] . ' ">' . $row['name'] . '</option>';  }
                       ?>
               </select>

它目前在db中没有显示任何帮助吗?

4 个答案:

答案 0 :(得分:3)

尝试使用代码mysql_select_db("disertation", $con);

中的一些空格
 mysql_select_db("disertation", $con);
 $results = mysql_query("SELECT name FROM user_parent") or die (mysql_error());

答案 1 :(得分:0)

让您的mysql_fetch_array来电阅读:

mysql_fetch_array($results, MYSQL_ASSOC)

如果没有MYSQL_ASSOC,则无法引用$row中的列名。

另外,请考虑使用MYSQLI或PDO。 MYSQL已经过时了。

答案 2 :(得分:0)

我建议您使用mysqli而不是mysql

<?php
    $con=mysqli_connect("localhost","root","","disertation ");
    // Check connection
    if (mysqli_connect_errno()) {
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $resource= mysqli_query($con,"SELECT * FROM user_parent");

    echo "<select class="name"><option value="name">Select one</option>";
    while($result = mysqli_fetch_array($resource)){
        echo '<option value="'.$result["name"].'">'.$result["name"].'</option>';
    }
    echo "</select>";

    mysqli_close($con);
?>

答案 3 :(得分:0)

要直接回答您的问题,您应首先检查是否有任何错误(mysql_error()),然后检查是否有一些结果(mysql_num_rows) - 这些可以让您更轻松地调试代码因为它会告诉你什么是错的。

试试这个;

<?php
// Connect with user
$con = mysql_connect("localhost","root","");
if (!$con)
{
    die('Could not connect: ' . mysql_error());
}
// Select database
mysql_select_db("disertation", $con);

// Run query
$results = mysql_query("SELECT `name` FROM `user_parent`;") or die (mysql_error());
// Check for no results
if (mysql_num_rows($results) == 0)
{
    echo 'There are no options for you to select.';
}
else
{
    // If results, loop them.
    // If the names are user input, make sure they're displayed in non-raw form
    echo '<select name="name">
        <option value="name">Select one</option>';

        while($row = mysql_fetch_assoc($results))
        {
            $name = htmlentities($row['name'], ENT_QUOTES, "UTF-8");
            echo '<option value=" ' . $name . ' ">' . $name . '</option>';  
        }

    echo '</select>';
}

将使用mysqli_解决方案编辑,如果这是一个选项,因为不推荐使用mysql_,迟早会从PHP支持中删除。


MySQLi解决方案;

<?php
// Connect to database;
$mysqli = new mysqli("localhost", "my_user", "my_password", "data_base");

if (mysqli_connect_errno()) 
{
    die("Connect failed: " . mysqli_connect_error());
}

$result = $mysqli->query("SELECT `name` FROM `user_parent`");
if ($result->num_rows > 0)
{
    echo '<select name="name">
        <option value="name">Select one</option>';

        while($row = $result->fetch_assoc)
        {
            $name = htmlentities($row['name'], ENT_QUOTES, "UTF-8");
            echo '<option value=" ' . $name . ' ">' . $name . '</option>';  
        }

    echo '</select>';
    $result->close();
}
else
{
    echo 'There are no options for you to select.';
}