使用php从SQL数据库传递select值

使用php从SQL数据库传递select值,php,html,mysql,sql,innodb,Php,Html,Mysql,Sql,Innodb,我试图使用一个select表单,该表单包含从SQL数据库填充的字段。数据库中有一个存储表,我使用此方法将这些不同的字段放入选择工具 echo '<select name="StoreName" />'."\n"; while ($row = mysqli_fetch_assoc($distinctResult)){ echo '<option value="'.$row["StoreID"].'">'; echo $row["StoreName"]; echo '<

我试图使用一个select表单,该表单包含从SQL数据库填充的字段。数据库中有一个存储表,我使用此方法将这些不同的字段放入选择工具

echo '<select name="StoreName" />'."\n";
while ($row = mysqli_fetch_assoc($distinctResult)){

echo '<option value="'.$row["StoreID"].'">';
echo $row["StoreName"];
echo '</option>'."\n";

};

echo '</select>'."\n";
echo“”。“\n”;
while($row=mysqli\u fetch\u assoc($distinctResult)){
回声';
echo$row[“StoreName”];
回显“”。“\n”;
};
回显“”。“\n”;

选择工具上会显示正确的存储名称,但是当我提交表单数据时,表单的值没有正确传递。在首页的此处:


这是输出页面:

<?php

$transaction = $_REQUEST["StoreName"];

    require_once 'login.php';

    $connection = mysqli_connect(
           $db_hostname, $db_username,
           $db_password, $db_database);



       $sql = "SELECT * FROM PURCHASE WHERE StoreName LIKE '%".$transaction."%'";
        $result = $connection->query($sql);

    ?>

    Purchases Made From <?php echo $transaction ?>
<table border="2" style="width:100%">
    <tr>
                  <th width="15%">Item Name</th>
                  <th width="15%">Item Price</th> 
                  <th width="15%">Purchase Time</th>
                  <th width="15%">Purchase Date</th>
                  <th width="15%">Category</th>
                  <th width="15%">Rating</th>
                </tr>
</table>
     <?php
        if($result->num_rows > 0){
            // output data of each row
            while($rows = $result->fetch_assoc()){ ?>
               <table border="2" style="width:100%">
                <tr>
                    <td width="15%"><?php echo $rows['ItemName']; ?></td>
                    <td width="15%"><?php echo $rows['ItemPrice']; ?></td>
                    <td width="15%"><?php echo $rows['PurchaseTime']; ?></td>
                    <td width="15%"><?php echo $rows['PurchaseDate']; ?></td>
                    <td width="15%"><?php echo $rows['Category']; ?></td>
                    <td width="15%"><?php echo $rows['Rating']; ?></td>
                </tr>
                <?php
            }
        }
        ?>

我正在调用输出页面中的
select
name
StoreName
,但它没有传递下拉列表中的值。我需要在第二页运行一个带有该术语的查询,这样我就可以为它提取相关数据。如果有人知道我做错了什么,请告诉我。多谢各位

回答意见:

您正在执行
从购买中选择不同的StoreName
,但是
$row[“StoreID”]
不在您的选择集中

  • 将其添加到您的选择中

表示要了解有关的声明。即使是这样也不安全!据我所知,您可能过早地用
mysqli\u close($connection)关闭了连接“表单的值没有正确传递”,您得到的值是多少?@JoseManuelAbarcaRodríguez当我在输出页面调用它时,它显示为空白,因此我猜它传递为零。欢迎您,并将其作为下面的解决方案发布;-)@andrewxt这件事让我难堪了几分钟哈哈
<?php

$transaction = $_REQUEST["StoreName"];

    require_once 'login.php';

    $connection = mysqli_connect(
           $db_hostname, $db_username,
           $db_password, $db_database);



       $sql = "SELECT * FROM PURCHASE WHERE StoreName LIKE '%".$transaction."%'";
        $result = $connection->query($sql);

    ?>

    Purchases Made From <?php echo $transaction ?>
<table border="2" style="width:100%">
    <tr>
                  <th width="15%">Item Name</th>
                  <th width="15%">Item Price</th> 
                  <th width="15%">Purchase Time</th>
                  <th width="15%">Purchase Date</th>
                  <th width="15%">Category</th>
                  <th width="15%">Rating</th>
                </tr>
</table>
     <?php
        if($result->num_rows > 0){
            // output data of each row
            while($rows = $result->fetch_assoc()){ ?>
               <table border="2" style="width:100%">
                <tr>
                    <td width="15%"><?php echo $rows['ItemName']; ?></td>
                    <td width="15%"><?php echo $rows['ItemPrice']; ?></td>
                    <td width="15%"><?php echo $rows['PurchaseTime']; ?></td>
                    <td width="15%"><?php echo $rows['PurchaseDate']; ?></td>
                    <td width="15%"><?php echo $rows['Category']; ?></td>
                    <td width="15%"><?php echo $rows['Rating']; ?></td>
                </tr>
                <?php
            }
        }
        ?>