【问题标题】:Passing select value from SQL database with php使用 php 从 SQL 数据库中传递选择值
【发布时间】:2016-08-31 15:57:56
【问题描述】:

我正在尝试使用从 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";

选择工具上显示了正确的商店名称,但是当我提交表单数据时,表单的值没有正确传递。在初始页面中:

<?php


require_once 'login.php';

$connection = mysqli_connect(
   $db_hostname, $db_username,
   $db_password, $db_database);
if(mysqli_connect_error()){
die("Database Connection Failed: " .
    mysqli_connect_error() .
    " (" . mysqli_connect_errno() . ")"
    );
};

$query = "SELECT * from PURCHASE";
//echo $query;
$result = mysqli_query($connection,$query);
if(!$result) {
die("Database Query Failed!");
};

$distinct = "SELECT DISTINCT StoreName FROM PURCHASE";


$distinctResult = mysqli_query($connection,$distinct);
if(!$result) {
die("Database Query Failed!");
};

echo '<title>Output 1</title>';
echo '</head>';
echo '<body>';
echo '<h1>Required Output 1</h1>';
echo '<h2>Transaction Search</h2>';
echo '<form action="output1out.php" method="get">';
echo 'Search Store:<br/>';
echo '<br/>';


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 '<input name="Add Merchant" type="submit" value="Search">';
echo '</form>';

mysqli_free_result($result);

mysqli_close($connection);


?>

这是输出页面:

<?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 名称StoreName,但它没有从下拉列表中传递值。我需要在第二页上使用该术语运行查询,以便我可以为其提取相关数据。如果有人能看到我做错了什么,请指教。谢谢你。

【问题讨论】:

  • 据我所知,您可能会过早关闭与 mysqli_close($connection); 的连接
  • “表单的值没有正确传递”,你得到了什么值?
  • @JoseManuelAbarcaRodríguez 当我在输出页面上调用它时,它显示为空白,所以我猜它传递为零。
  • 不客气,并将其发布为下面的解决方案 ;-) @andrewxt 有人让我难倒了几分钟 lol

标签: php html mysql sql innodb


【解决方案1】:

评论回答:

您正在执行SELECT DISTINCT StoreName FROM PURCHASE 但$row["StoreID"] 不在您的选择集中。

  • 将其添加到您的 SELECT 中。

【讨论】:

    猜你喜欢
    • 2023-04-01
    • 2018-04-20
    • 2022-08-17
    • 1970-01-01
    • 2019-01-19
    • 2017-11-04
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多