Свойство «AutomaticDataCollectionEnabled» отсутствует в типе «FirebaseApp»

Если вы не собираетесь что-либо менять в базе данных - вы просто выбираете - продолжайте использовать GET вместо POST. Преимущество этого заключается в том, что он позволит вам сохранить URL в качестве строки поиска. Вы также можете обновить поиск, не получая сообщение о повторной отправке сообщения. Вы просто хотите убедиться, что вы параметризуете свои значения перед отправкой их в базу данных. Обычно я отправляю эти значения через функции sanitize, такие как регулярное выражение, которое гарантирует, что у вас есть буквы, если вы ожидаете буквы, или цифры, если вы ожидали числа.

На той же странице (весь поиск):

<form action="<?= $_SERVER["REQUEST_URI"]; ?>" method="GET">
    <input name="major" value="<?= $_GET["major"]; ?>" />
    <select name="college">
        <option value="1" <?PHP if( $_GET["college"] == 1 ) echo 'selected="true"'; ?>>Business</option>
    </select>
</form>

<?PHP
if( ! empty( $_GET ) ){
    if (isset($_GET['major'])) {
       $wheres[] = 'a.major = :major';
       $params[':major'] = $_GET['major'];
    }
    if (isset($_GET['name'])) {
       $wheres[] = 'b.name LIKE :name';
       $params[':name'] = '%'.$_GET['name'].'%';
    }
    // And so on for all parameters

    $sql = "SELECT * 
        FROM user_details AS a
        JOIN user AS b ON a.uid = b.id";
    if (!empty($wheres)) {
        $sql .= " WHERE " . implode(' AND ', $wheres);
    }
    $stmt = $db->prepare($sql);
    $stmt->execute($params);
}
?>

Теперь вы можете отображать свои данные.

edit: Я написал другую половину ответа, а затем он написал вторую половину, поэтому я просто включил его ...

. Кроме того, следующий уровень сложности в этом заключается в том, чтобы вывести PHP из файла поиска и поместить его в другой файл. Когда вы нажимаете кнопку поиска в своей форме, вы должны использовать AJAX для вызова элементов PHP. Затем файл PHP вернет результаты через Ajax. Вы можете вернуть либо предварительно отформатированный HTML, либо JSON, и пусть что-то вроде JQuery отобразит его для вас.

13
задан Ryan Schaefer 3 May 2018 в 14:17
поделиться