Вкладка множественного поиска в PHP MySQLi - PullRequest
0 голосов
/ 26 июня 2018

Я хочу поставить несколько вариантов поиска в PHP MySQLi. Он имеет несколько форм для имени, фамилии и электронной почты. Он уже работает, если я введу только Имя, Только Фамилия, только электронная почта, а также имя и адрес электронной почты. но когда я ввожу фамилию и пишу по электронной почте, это ошибки. ты можешь проверить мое состояние? спасибо!

`<title>Results</title>
 <?php require 'header/headerResults.php'; ?>

 <?php
 $conn = mysqli_connect('localhost', 'root', '', 'db');

 //search code
 if($_REQUEST ['submit']){
 $firstname = mysqli_real_escape_string($conn, $_POST['name']);
 $lastname = mysqli_real_escape_string($conn, $_POST['lname']);
 $email = mysqli_real_escape_string($conn, $_POST['email']);

// query for searching
$sele = "SELECT * FROM `examinee_detail` WHERE ";
$fn = "`firstname` LIKE '%$firstname%'";
$ln = "`lastname` LIKE '%$lastname%'";
$em = "`email` LIKE '%$email%'";
$both = "`lastname`,`email` LIKE `%$lastname%`,`%$email%`";

    // since there are three search bar, this are the conditions.
    if(empty($firstname)){
        $make = '<p>You must type a word to search!</ps>';
        }else{
            $make = "<div class = 'container mt-5'>
                    <div class = 'card mt-3'>
                        <div class = 'card-header'>
                            <h2>No results found!</h2>
                        </div>";
            $sele = $sele . $fn;}

    if(empty($lastname)){
        $make = '<p>You must type a word to search!</p>';
        }else{
            $make = "<div class = 'container mt-5'>
                    <div class = 'card mt-3'>
                        <div class = 'card-header'>
                            <h2>No results found!</h2>
                        </div>";


    if(!empty($firstname)){ $sele = $sele . " OR ";}

        $sele = $sele . $ln;
            }

    if(empty($email)){
        $make = '<p>You must type a word to search!</p>';
        }else{
            $make = "<div class = 'container mt-5'>
                    <div class = 'card mt-3'>
                        <div class = 'card-header'>
                            <h2>No results found!</h2>
                        </div>";
    if(!empty($firstname)){ $sele = $sele . " OR ";}
        $sele = $sele . $em;
        }
            $result = mysqli_query($conn, $sele);
                if($mak = mysqli_num_rows($result) > 0){


    echo "<div class = 'container mt-5'>
                    <div class = 'card mt-3'>
                        <div class = 'card-header'>
                            <h2>Results</h2>
                        </div>
                            <div class = 'card-body' style = 'background-color: white'>
                                <table class = 'table table-bordered'>
                                    <tr>

                                        <th>First Name</th>
                                        <th>Last Name</th>
                                        <th>E-mail</th>
                                        <th>Action</th>"; 

    while($row = mysqli_fetch_assoc($result)){


    echo "<tr>
            <td>".$row["firstname"]."</td>
            <td>".$row["lastname"]."</td>
            <td>".$row["email"]."</td>
            <td><a href='ExamineeProfile.php?view=".$row['email']."' class='btn btn-primary'>View</a></td></tr>";}?>
 <div class = "container">
 <a href = "search.php" class = "btn btn-info">Search again</a>
 <a href = "examinees2.php" class = "btn btn-primary">Show full list</a><br><br>
 </div>

<?php
}else{
//echo'<h2> Search Result</h2>';

print ($make);
}
//mysqli_free_result($result);
//mysqli_close($conn);

}
?>

`

1 Ответ

0 голосов
/ 26 июня 2018

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

Вы должны изменить это от:

$both = "`lastname`,`email` LIKE `%$lastname%`,`%$email%`";

К этому:

$both = "`lastname` LIKE '%$lastname%' AND `email` LIKE '%$email%'"; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...