MySQL查询无法使用$ _GET中的PHP

时间:2014-06-15 22:53:01

标签: php mysql

我似乎无法将$ _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,它将正确显示。

3 个答案:

答案 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">

感谢大家的帮助!