我想从表单中获取一些变量,我将使用这些变量来制作搜索栏,例如:
$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';
?>
答案 0 :(得分:1)
答案 1 :(得分:0)
既然你是新手,那么从一开始就嵌入一些好的做法是明智的。供参考的文档为PDO和Prepared 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
因为其他使用的变量将按原样使用,而不是其内容(由表单给出)。