0

我对 php 还很陌生,正在尝试制作一个 php 脚本,它应该连接到 mysql db 并获取 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

4 回答 4

0

我以前需要使用类似的方法从表中检索专辑列表,也许试试这个功能。创建您的表单并在 and 标记中调用该函数,从而使其起作用。这应该列出您在查询中指定的 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>
于 2013-03-16T23:46:22.067 回答
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 中的连接。

于 2013-03-16T23:28:12.850 回答
0

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

"$query = "select id from table where id = '$id'";
mysql_query($query);
echo $query;
于 2013-03-16T22:56:00.950 回答
0

也许如果你向我们展示你确实得到了什么输出,它会有所帮助。

选项返回空

如果输出包含循环内生成的 HTML,则意味着查询至少返回 1 行。但是产生空字符串的唯一方法echo "<option value='$valuestring'>"是 $valuestring 是空字符串。它是从“SELECT id FROM users WHERE id='$id'”填充的,这意味着您的数据库中必须有一行 id 为空或空字符串,并且您的 php 代码中的 $id 为空/空字符串 - 确实是案例 ($id = "";)。

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

于 2013-03-16T23:21:32.717 回答