我似乎无法将$ _GET传递给我的MYSQL查询。假设我的数据库中有2个表,例子1和example2。我想查询从上一页选择的表。如果我只是将表放入查询中它运行正常。这是我到目前为止所拥有的......
<html>
<form id="area" name="area" method="GET" action="test.php">
Select:
<select id="area" name="area">
<option value="example1">Example1</option>
<option value="example2">Example2</option>
</select><br><br>
<input type="submit" value="Submit">
</form>
</html>
test.php的
include "connect.php";
$area = $_GET['area'];
$sql = "SELECT * FROM '$area' ";
$query = mysqli_query($sql);
if (isset($_POST['searchquery'])) {
$search_term = $_POST['searchquery'];
$result = mysqli_query($con, $sql);
}
?>
<strong>Search</strong>
<p>
<form action="test.php" method="POST">
Search: <input type="text" name="searchquery" />
<input type="submit" name="searchname" value="Search">
</form>
<table class="sortable.js" width="100%" cellpadding="1" cellspace="0">
<tr>
<td><strong>1</strong></td>
<td><strong>2</strong></td>
<td><strong>3</strong></td>
<td><strong>4</strong></td>
</tr>
<?php
while ($row = mysqli_fetch_array($result)) {
?>
<tr>
<td><?php echo $row['1']; ?>
<td><?php echo $row['2']; ?>
<td><?php echo $row['3']; ?>
<td><?php echo $row['4']; ?>
<?php } ?>
</table>
如果我回显$ area,它将正确显示。
答案 0 :(得分:1)
引用您的表名。删除引号或使用转义
之类的转义字符$sql = "SELECT * FROM `$area` ";
答案 1 :(得分:1)
与 mysql_()不同,mysqli _ 函数需要明确指定连接。在$query = mysqli_query($sql);
语句中,您使用了msqli_,但是您没有提供连接(mysqli链接资源变量),您应该将连接作为调用的第一个参数传递给此$query = mysqli_query($connection, $sql);
。另外,不要忘记选择数据库。你可以选择这样的数据库。 mysqli_select_db($connection,"database_name");
请记住将$connection
替换为您的连接变量名称。
答案 2 :(得分:-1)
我发现以下是解决我问题的方法。
我改变了:
<form action="test.php" method="POST">
到
<form action="test.php?area=<?php echo $area?>" method="POST">
感谢大家的帮助!