我有不同的表,如表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
爲什麼你使用get而不是發佈,如果它是從本地html文件到本地php文件? – Gert