通过PHP Mysql搜索

时间:2016-03-02 15:55:14

标签: php mysql

我想从表单中获取一些变量,我将使用这些变量来制作搜索栏,例如:

$var=$_POST['var']

我想把这个变量放在这样的请求中:

$SQL = 'SELECT * FROM Table ORDER By $var'

有什么建议吗?如何将此请求转换为动态请求?谢谢:)

代码是:

<form>
     <lable for="Variable">
     <input type ="text" name="variable" placeholder="Search by : ">
</form> 
<?php
    $variable = $_POST['variable'] 
    sql = 'SELECT * FROM Total ORDER BY $variable'; 
?>

4 个答案:

答案 0 :(得分:1)

请参阅PDOorder by审核。

您的选择查询将是

SELECT * FROM yourtable ORDER BY DATABASE_FIELD;

答案 1 :(得分:0)

既然你是新手,那么从一开始就嵌入一些好的做法是明智的。供参考的文档为PDOPrepared Statements

可以在W3Schools上找到示例PDO教程,以及tutorial on handling form data with PHP

答案 2 :(得分:0)

这是一个简单搜索的例子

PHP:

<?php

$search = $_POST["search"];

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT * FROM `profile` WHERE `email`='$search'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "id: " . $row["id"]. " - Name: " . $row["firstname"]. " " . $row["lastname"]. "<br>";
}
} else {
echo "0 results";
}
$conn->close();
?>

HTML:

<form action="profile.php" method="post">  
<input type="text" name="search"><br>  
<input type="submit">
</form> 

希望有所帮助

答案 3 :(得分:0)

首先,

使用method="POST"action="file.php"(但action并非严格需要,在某些情况下需要使用AJAX处理)

<form method="POST" action="file.php">
   <lable for="Variable">
   <input type ="text" name="variable" placeholder="Search by : ">
</form>

第二,您需要从表单中获取清理输入(这意味着,您必须消除任何会损害您网页的内容 - 使用此PDO或其他图层可以提供帮助)。

第三,你需要重写

sql = 'SELECT * FROM Total ORDER BY $variable'

sql = "SELECT * FROM Total ORDER BY $variable"

sql = 'SELECT * FROM Total ORDER BY '.$variable

因为其他使用的变量将按原样使用,而不是其内容(由表单给出)。