Я пишу некоторый PHP для запроса из базы данных MySQL, которую я настроил на своем сервере WAMP. Я также изучаю PHP и HTML Javascript, так что синтаксис обоих языков все еще немного незнаком для меня.
РЕДАКТИРОВАТЬ: синтаксическая ошибка была решена, однако я теперь получаю
Неопределенный индекс: семья
ошибка при компиляции. Я запускаю два файла через мой сервер, front.php и back.php. Front содержит форму селектора, где пользователь может выбрать фильтр, который будет применен к php-запросу к MySQL. back.php получает выделение с помощью $ _REQUEST и использует его в запросе SELECT. Я разместил код, относящийся к форме селектора, в файле front.php ниже.
<form method="POST">
<select name="family" onchange="showUser (this.value)">
<option value="empty">Select a Family:</option>
<option value="capacitor">capacitor</option>
<option value="resistor">resistor</option>
<option value="ferrite bead">ferrite bead</option>
</select>
</form>
Вот вызов $ _REQUEST в back.php
$sql="SELECT * FROM testv2 WHERE family='".$_REQUEST['family']."'";
$result = mysqli_query($con,$sql);
Вы должны изменить строку 24 с:
$sql="SELECT * FROM testv2 WHERE family ='$_REQUEST['family']'";
Для того, чтобы:
$sql="SELECT * FROM testv2 WHERE family ='" . $_REQUEST['family'] . "'";
Поскольку это должно исправить синтаксическую ошибку, но все же использование приведенного выше кода является плохой идеей, так как код имеет уязвимость SQL-инъекции.
Я советую вам использовать подготовленное заявление PDO, если вы учитесь.
http://php.net/manual/en/pdo.prepared-statements.php
Вы лечите
$sql="SELECT * FROM testv2 WHERE family ='$_REQUEST['family']'";
как целое число, рассматривайте его как строку, сделайте это:
$sql="SELECT * FROM testv2 WHERE family ='".$_REQUEST['family']."'";
Другое предложение состоит в том, чтобы использовать как
Примечание: LIKE увеличит данные из базы данных, поэтому будьте внимательны, если у вас много данных
РЕДАКТИРОВАТЬ: Согласно ЗАПРОСУ, используйте $ _POST напрямую вместо $ _REQUEST, пожалуйста, проверьте Среди $ _REQUEST, $ _GET и $ _POST