【问题标题】:Allowing users to search database for username/email and showing results允许用户在数据库中搜索用户名/电子邮件并显示结果
【发布时间】: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/6574564stackoverflow.com/q/16925584 - 继续您的 Google 搜索“搜索多个表 mysql”
  • 永远不要将用户输入添加到这样的查询中。使用准备好的语句或至少转义输入。
  • @Jite 是的,我知道,我想让搜索工作,然后我会转义并修剪输入。

标签: php mysql database search


【解决方案1】:

如果你想搜索多个表,你将不得不以某种方式加入它们。由于您没有发布您的表结构,我只能对您正在尝试做的事情做出假设,但一般语法是:

$query = "SELECT * FROM users u LEFT JOIN something s ON s.id = u.something_id WHERE u.email LIKE '%$search%'";

然后您可以回显返回的不同列。但同样,这个问题需要更多信息才能得到更好的答案。

希望这能有所帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 2015-06-30
    相关资源
    最近更新 更多