0

私はphpが初めてで、mysql dbに接続してvaule idを取得し、ドロップダウンメニューのオプションとして表示するphpスクリプトを作成しようとしています。

これは私がこれまでに持っているコードです(友人から助けを得ました):

$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); も実行しようとしました。これで Resource id #4 が得られたので、これでうまくいくと思います。

誰かがこれを解決するのを手伝ってくれたら、私は幸せな男になるでしょう:D

4

4 に答える 4

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>
于 2013-03-16T23:46:22.067 に答える
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 が null または空の文字列で、php コードの $id が null/空の文字列である行が必要であることを意味します。ケース ($id = "";)。

NTW mysql_close(); ループの外にある必要があります。

于 2013-03-16T23:21:32.717 に答える
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 に答える