Как использовать метод поиска, используя опцию выбора тега для поиска идентификатора, электронной почты, имени пользователя в PHP, MYSQL? - PullRequest
0 голосов
/ 12 февраля 2019

Здравствуйте. Я пытаюсь найти способ поиска, используя тег select с опцией ID, Email и Полное имя.

У меня есть этот HTML-код для поиска:

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post">
<select class="searchoptionuser" name="Search" id="searchbyuser">
<option value="" disabled selected value>Search User</option>
<option value="ID">ID</option>
<option value="Email">Email</option>
<option value="Fullname">Fullname</option>
</select>
<input type="text" name="search" placeholder="Search..." id="search_text" class="searchtext">
<input type="submit" name="submit" value="Search">
</form>

И я хочу отфильтровать поиск при выборе идентификатора, поиск будет выполняться только по идентификатору, а также по электронной почте и полному имени.

Я пробовал это в PHP:

<?php
include "includes/connection.php";

if ($_SERVER["REQUEST_METHOD"] == "POST") {

if(isset($_POST['Search']) == "ID")
{
// query code here from database
alert(1);

} else if(isset($_POST['Search']) == "Email") {
// query code here from database

} else if(isset($_POST['Search']) == "Fullname") {
// query code here from database
$output = "";
$sql = "SELECT * FROM user WHERE firstname LIKE '%".$_POST["search"]."%' or lastname LIKE '%".$_POST["search"]."%'";
$result = mysqli_query($connection, $sql);

if (mysqli_num_rows($result) > 0) {
$output .= "<tr><th>User ID</th><th>Email</th><th>Fullname</th><th>Phone Number</th></tr>";
// output data of each row
while($row = mysqli_fetch_array($result)) {
$output .= "<tr>
<td>" .$row["id"]. "</td><td>" .$row["email"]. "</td><td>" .$row["lastname"]. ", " .$row["firstname"]. "</td><td>" .$row["phonenumber"]. "</td>
</tr>";
}
echo $output;
} else {
echo "No account found.";
}
}
}

?>

Но, похоже, это не работает .. Это возможно в php, или этот метод предназначен только для javascript или jquery.Пожалуйста, помогите кому-нибудь.Спасибо

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете создать условный запрос на основе данных, которые вы получаете от $ _POST.

$query = "";

if($_POST['Search'] == "ID")
{
  $query .= "AND firstname LIKE '%".$_POST["search"]."%' or lastname LIKE '%".$_POST["Search"]."%'"";
} else if($_POST['Search'] == "Email") {
  $query .= "AND email LIKE '%".$_POST["Search"]."%'";
} else if($_POST['Search'] == "Fullname") {
  $query .= "AND ID = ".$_POST["Search"];
 }

$sql = "SELECT * FROM user WHERE 1=1 ".$query ;

Пожалуйста, игнорируйте синтаксические ошибки, если они есть, поскольку я не тестировал код, но он даст вам представление о том, как выможет достичь этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...