PHP - Как получить выбранный выбор и перейти к БД

avatar
user16353872
1 июля 2021 в 20:44
38
2
-1

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

Мои коды ниже могут отображать список клиентов в раскрывающемся списке.

$query_customer = "SELECT customer FROM Customer;";
$result_customer = mysqli_query($connect, $query_customer);

<select>
<option value="" disabled selected>--- Select Customer ---</option>
<?php while($row_customer = mysqli_fetch_array($result_customer)) { ?>
<option> <?php echo $row_customer["customer"]; ?> </option>
<?php } ?>
</select>

Я намерен получать заказы этого клиента от db с кодами ниже.

$customer = $_GET['customer'];
$query_order = "SELECT order FROM Customer where customer = '$customer';";
$result_order = mysqli_query($connect, $query_order);

Моя проблема: как мне получить доступ к выбранному покупателю и передать этот код $_GET['customer']?

Я потратил час на решение этой задачи. Пожалуйста, может кто-нибудь помочь. Спасибо.

============================================== ===========

Основываясь на комментариях, я изменил приведенные ниже коды.

$query_customer = "SELECT customer FROM Customer;";
$result_customer = mysqli_query($connect, $query_customer);

<select name="customer">
<option value="" disabled selected>--- Select Customer ---</option>
<?php while($row_customer = mysqli_fetch_array($result_customer)) { ?>
<option> <?php echo $row_customer["customer"]; ?> </option>
<?php } ?>
</select>


$customer = $_GET['customer']; //Warning: Undefined array key "customer"
$query_order = "SELECT order FROM Customer where customer = '$customer';";
$result_order = mysqli_query($connect, $query_order);

<p><?php echo $result_order['order']; ?></p> //Uncaught Error: Cannot use object of type mysqli_result as array

к вашему сведению, в таблице Customer есть 10 клиентов, и у каждого клиента ровно один заказ. Результат должен быть единственным значением заказа выбранного клиента.

Я получил предупреждение и ошибку, как указано выше. Пожалуйста, посоветуйте правильный способ реализации кодов.

Большое спасибо.

Источник
Barmar
1 июля 2021 в 20:53
3

Вам нужно name="customer" в <select>

Sysix
1 июля 2021 в 22:57
0

ваш код имеет возможность SQL-инъекции, попробуйте использовать mysqli_prepare, когда вы хотите использовать переменную/пользовательский ввод для запроса.

Ответы (2)

avatar
Enes Zorkol
1 июля 2021 в 21:12
0

Вы можете решить, как показано ниже

$query_customer = "SELECT customer FROM Customer;";
    $result_customer = mysqli_query($connect, $query_customer);
    
    <select name="customer">
    <option value="" disabled selected>--- Select Customer ---</option>
    <?php while($row_customer = mysqli_fetch_array($result_customer)) { ?>
    <option> <?php echo $row_customer["customer"]; ?> </option>
    <?php } ?>
    </select>
avatar
Dimich
1 июля 2021 в 20:56
1

В вашем открывающем теге <select> вам нужно name="customer"

Например: <select name="customer">

Посмотрите документацию по html-формам