私はテーブル1〜5のような異なるテーブルをmysqlデータベースに持っています。私はドロップダウンテーブルのリストからそれを選択すると、各テーブルを表示するためのコードが必要です。私は以下を実行しようとすると、私は応答がなく、データはSQLからロードされませんでした。PHPでドロップダウンリストを使用して異なるmysqlテーブルを表示するには
<div>
<form action="table1.php" method="GET">
<input list="name" name="name">
<datalist id="name">
<option value="table 1">
<option value="table 2">
<option value="table 3">
<option value="table 4">
<option value="table 5">
</datalist>
<input type="submit" name="search" value="search">
</form>
</div>
<div>
<table width="600" border="0" cellpadding="1" cellspacing="1">
<tr>
<th>Column 1</th>
<th>Column 2</th>
<th>Column 3</th>
<th>Column 4</th>
</tr>
</table>
PHPコードでは、選択値の変数を割り当ててプログラムに与えます。変数が定義されていないか、$ conn文で使用されていないというエラーが出ました。
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "sheet";
$tbname= $_GET['name'];
if (isset($_GET['search'])) {
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $conn->prepare("SELECT * FROM '$tbname'");
$stmt->execute();
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
echo "<tr>";
echo "<th>".$result['Column 1']."</th>";
echo "<th>".$result['Column 2']."</th>";
echo "<th>".$result['Column 3']."</th>";
echo "<th>".$result['Column 4']."</th>";
echo "</tr>";
}
catch(PDOException $e) {
echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
}
テーブル名を引用しないでください。 "SELECT * FROM $ tbname" 'を試してください。 – miken32
また、データベースに送信する前に、既知のテーブル名に一致する入力を確認することをお勧めします。 – miken32
なぜ、ローカルのhtmlファイルからローカルのphpファイルに移動していれば、取得してポストしないのですか? – Gert