我试图让用户搜索数据库并回显结果,我想搜索多个表。我知道我可以做SELECT * FROM x1,x2,但这些行被命名为其他东西,所以我不能 echo $ row ['用户名'] 当另一行是username2时。也许如果它可能像if($ row == whatever),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();
}
答案 0 :(得分:0)
如果你想搜索多个表,你将不得不以某种方式加入它们。由于您没有发布表结构,我只能对您要执行的操作做出假设,但一般语法是:
$query = "SELECT * FROM users u LEFT JOIN something s ON s.id = u.something_id WHERE u.email LIKE '%$search%'";
然后你可以回显出返回的不同列。但同样,这个问题需要更多信息才能得到更好的答案。
希望这无论如何都有帮助!