【发布时间】:2014-11-27 19:49:36
【问题描述】:
我试图让用户搜索数据库并回显结果,问题是我想搜索多个表。我知道我可以做 SELECT * FROM x1, x2 但是行被命名为别的东西所以我不能 回声 $row['用户名'] 当另一行是用户名2。也许如果它可能像 if($row == 不管), idk。感谢您的帮助。
<?php
$search = $_POST['Srch'];
$host = "whatever";
$db = "whatever";
$user = "whatever";
$pwd = "whatever";
$link = mysqli_connect($host, $user, $pwd, $db);
$query = "SELECT * FROM users WHERE email LIKE '%$search%'";
$results = mysqli_query($link, $query);
if(isset($_POST['Srch'])) {
if(mysqli_num_rows($results) >= 0) {
while($row = mysqli_fetch_array($results)) {
echo "Username: " . $row['username'];
echo "Email: " . $row['email'];
}
}
}
?>
<body>
<form action="" method="POST">
<input type="Text" name="Srch">
<input type="Submit" name="Submit">
</form>
编辑:找到了一种方法来做到这一点。这样的工作:
function search1() {
// Search stuff here
}
function search2() {
// Search more stuff here
}
if(isset($_POST['Srch'])) {
search1();
search2();
}
【问题讨论】:
-
查看问答 stackoverflow.com/q/6574564 和 stackoverflow.com/q/16925584 - 继续您的 Google 搜索“搜索多个表 mysql”
-
永远不要将用户输入添加到这样的查询中。使用准备好的语句或至少转义输入。
-
@Jite 是的,我知道,我想让搜索工作,然后我会转义并修剪输入。