Использование значения Select Option для запроса базы данных

У меня есть следующий код для генерации моего варианта:

<?php $sql = "SELECT DISTINCT MyID FROM database"; $query = $db->prepare($sql); $query->execute(); $option = ""; foreach ($query->fetchAll(PDO::FETCH_ASSOC) as $rows) { $id = $rows[MyID]; $option.="<option>".$id."</option>"; } ?> <select name="options" id="options" class="options"> <option value="$id">Select an Option</option> <?php echo $option?> </select> 

Я хотел бы использовать значение выбранного параметра в следующем запросе. Например:

 <?php $myDB= $db->prepare("SELECT * FROM names WHERE RowID = :option"); $myDB->bindParam(':option', $option); //the value of the option selected in my dropdown $myDB->execute(); $result = $myDB->fetchAll(); 

По какой-то причине это не работает. Не могли бы вы помочь в этом. благодаря

 <?php $sql = "SELECT DISTINCT MyID FROM database"; $query = $db->prepare($sql); $query->execute(); $option = ""; $result = $query->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row) { $id = $row['MyID']; $option.='<option value="'.$id.'">'.$id.'</option>'; } ?> <form method="post" action"(`The url of the next page`)"> <select name="options" id="options" class="options"> <option disabled>Select an Option</option> <?php echo $option?> </select> <input type="submit" value="submit" /> </form> 

Следущая страница:

 <?php if(isset($_POST['submit']) && isset($_POST['options'])) { $option = $_POST['option']; $myDB= $db->prepare("SELECT * FROM names WHERE RowID = :option"); $myDB->bindParam(':option', $option); //the value of the option selected in my dropdown $myDB->execute(); $result = $myDB->fetchAll(); } 
  1. С помощью fetchAll() вы должны назначить это переменной, а затем fetchAll() .
  2. $row[MyID] MyID должен быть заключен в '' или '", поскольку индекс является строкой, поэтому $row['MyId']
  3. Вам нужно будет отправить данные обратно на сервер для PHP, чтобы иметь возможность что-либо сделать с ним, поскольку PHP создает его HTML, а затем отправляет его с сервера в браузер.
  4. Я использовал if(isset()) для переменных REQUEST ($ _GET, $ _POST), это предотвратит ошибки PHP при попытке загрузить страницу без их доступности.

Если у вас возникнут другие вопросы, я буду рад помочь.

Надеюсь это поможет! 🙂

РЕДАКТИРОВАТЬ

 <?php if(isset($_GET['submit']) && isset($_GET['options'])) { $option = $_GET['option']; $myDB= $db->prepare("SELECT * FROM names WHERE RowID = :option"); $myDB->bindParam(':option', $option); //the value of the option selected in my dropdown $myDB->execute(); $result = $myDB->fetchAll(); /** * You'll need to put the logic for the query above here **/ } else { $sql = "SELECT DISTINCT MyID FROM database"; $query = $db->prepare($sql); $query->execute(); $option = ""; $result = $query->fetchAll(PDO::FETCH_ASSOC); foreach ($result as $row) { $id = $row['MyID']; $option.='<option value="'.$id.'">'.$id.'</option>'; } ?> <form method="get" action""> <select name="options" id="options" class="options"> <option disabled>Select an Option</option> <?php echo $option?> </select> <input type="submit" value="submit" /> </form> <?php } // End of else ?> 

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