Я пишу PHP для запроса из базы данных MySQL, которую я установил на моем сервере WAMP. Я также изучаю PHP и html javascript по мере того, как я иду, поэтому синтаксис обоих языков все еще немного незнакомо мне.
EDIT: Синтаксическая ошибка была решена, однако теперь я получаю
Неопределенный индекс: семейство
ошибка при компиляции. Я запускаю два файла через мой сервер, front.php и back.php. Фронт содержит форму выбора, в которой пользователь может выбрать фильтр, который будет применяться к запросу 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 Injection.
Я советую вам использовать подготовленный отчет 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
Примечание: LIKE увеличит данные из базы данных, поэтому имейте это в виду, если у вас много данных
EDIT: в соответствии с запросом используйте $ _POST непосредственно вместо $ _REQUEST, пожалуйста, проверьте среди $ _REQUEST, $ _GET и $ _POST
$sql="SELECT * FROM testv2 WHERE family ='$_REQUEST['family']'";
посмотрите внимательно