Как отобразить таблицу запросов для искомого и отфильтрованного значения? - PullRequest
0 голосов
/ 12 июня 2018

Мой код PHP для поиска и фильтрации не отображает таблицу запросов значения, которое я искал и фильтровал.Как решить эту проблему?

PHP

if(isset($_POST['search']))
{
    $valueToSearch = $_POST['valueToSearch'];
    // search in all table columns
    // using concat mysql function
    $query = "SELECT * FROM `details` WHERE CONCAT('id','date_of_entry','region','province_of_provider') LIKE '%".$valueToSearch."%'";
    $search_result = filterTable($query);
}
 else {
    $query = "SELECT * FROM `details`";
    $search_result = filterTable($query);
}

// function to connect and execute the query
function filterTable($query)
{

$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";

    $connect = mysqli_connect($servername, $username, $password, $dbname);
    $filter_Result = mysqli_query($connect, $query);
    return $filter_Result;
}

while ($trainee = mysqli_fetch_array($search_result)){

    echo "<tr>";
    echo "<td>".$trainee['id']."</td>"; 
    echo "<td>".$trainee['date_of_entry']."</td>";
    echo "<td>".$trainee['region']."</td>";
    echo "<td>".$trainee['province_of_provider']."</td>";
    echo "</tr>";

}// End while

?>

Когда я выполняю поиск и фильтрацию из textbox, строки таблицы не содержат никакого значения, включая его границы, но заголовки таблицыдля каждого столбца все еще присутствует.Кроме того, когда я оставляю поиск пустым и нажимаю кнопку фильтра, все строки таблицы содержат все значения всех данных, найденных в таблице базы данных.

1-е редактирование:

Iизменил мое:

$query = "SELECT * FROM `details` WHERE CONCAT('id','date_of_entry','region','province_of_provider') LIKE '%".$valueToSearch."%'";

На это:

$query = "SELECT * FROM `details` WHERE CONCAT_WS(' ','id','date_of_entry','region','province_of_provider') LIKE '%".$valueToSearch."%'";

Тем не менее, мой результат поиска - пустая таблица, но только с заголовками столбцов таблицы.

1 Ответ

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

Заменить эту часть:

$query = "SELECT * FROM `details` WHERE CONCAT('id','date_of_entry','region','province_of_provider') LIKE '%".$valueToSearch."%'";

на эту:

$query = "SELECT * FROM `details` WHERE CONCAT(`id`, `date_of_entry`, `region`, `province_of_provider`) LIKE '%".$valueToSearch."%'";
...