mysql データベースの情報を照会するドロップダウン メニューを作成しようとしています。私はそれを機能させ、@jeroen の助けを借りて、選択したオブジェクトを namesearch16.php に渡すようになったと思います。Web ページは次の場所にあります: http://swapabook.hostei.com/search16.php
エラーはありませんが、クエリに一致するデータベース内の行が出力されることを期待していました。
文字列で返されます: array(1) { ["select1"]=> &string(4) "book" }
問題は、間違ったものを返しているという while ステートメントにあると感じています。ちなみに、私のテーブルには5つのフィールドがあり、そのうちの4つを返したいと思っています。
初期ファイルには次のコードがあります。
<form action="namesearch16.php" method="post">
Name of Book
<?php
mysql_connect("mysql1x.000webhost.com","a4425533_swapabo","xxxxx") or die("Connection Failed");
mysql_select_db('a4425533_swapabo')or die("Connection Failed");
$query = "SELECT * FROM book";
$result = mysql_query($query);
?>
<select name="select1">
<?php
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
?>
<option value="<?php echo $line['book'];?>"> <?php echo $line['book'];?> </option>
<?php
}
?>
</select>
<input type="submit">
</form>
@jeroen からの入力に従って、2 番目のファイルを次のように変更しました。
<?php
$con=mysqli_connect('mysql1x.000webhost.com','a4425533_swapabo','xxxx','a4425533_swapabo');
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$namequery="SELECT * FROM book WHERE book = ?";
$namestmt = mysqli_prepare($con, $namequery);
mysqli_stmt_bind_param($namestmt, "s", $_POST['select1']);
var_dump($_POST);
mysqli_stmt_execute($namestmt);
if ($result = mysqli_query($con, $namequery)) {
while($row = mysqli_fetch_array($result))
{
echo $row['book'];
echo "<br>";
echo "got as far as the while loop";
}
}
?>