Разрешение пользователям искать в базе данных имя пользователя / адрес электронной почты и показывать результаты

Я пытаюсь разрешить пользователям выполнять поиск в базе данных и выводить результаты, дело в том, что я хочу искать по нескольким таблицам. Я знаю, что могу сделать SELECT * FROM x1, x2, но строки названы как-то иначе, поэтому я не могу
echo $ row [‘username’] когда другая строка — username2. Возможно, если это возможно, что-то вроде 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();
}

0

Решение

Если вы хотите найти несколько таблиц, вам нужно как-то присоединиться к ним. Так как вы не опубликовали структуру таблицы, я могу только предположить, что вы пытаетесь сделать, но общий синтаксис будет таким:

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

Затем вы можете отобразить различные столбцы, которые возвращаются. Но опять же, этот вопрос требует больше информации для лучшего ответа.

Надеюсь, это поможет в любом случае!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]