仅使用1选择从DB中的不同列中提取2个值

时间:2016-08-05 17:25:52

标签: php html mysql select

问题解决了:这是解决方案,感谢@ dont-panic和帮助过我的每个人!

while($row = mysql_fetch_assoc($get)) {
    $option .= '<option id="opcion" value="'.$row['nombre'].'">'
                    .$row['nombre']
              .'</option>';
    if (isset($_POST['postre']) && $row['nombre'] == $_POST['postre']) {
        $preciodelpostre = $row['precio'];
    }
} ?>

正如标题所说,我试图为我的杂货店创建一个非常简单的会计网站,在那里我保持我的日常销售登记。我已经创建了一个表单,用这些表名在数据库中添加新文章:

  

表:Postres - postreID(文章的id),nombre(的名称)   文章),价格(文章的价格)。

我还有另一张名为&#34; ventas&#34;的表,我想根据已经完成的日期标准存储我的所有销售。

  

表:Ventas - id(销售ID),fecha(注册销售日期),   postre_vendido(出售物品的名称),ganancia(文章价格)。

这是我注册销售的代码:

<?php
$dbhost = 'db641973975.db.alansete.com';
$dbuser = 'dbo675';
$dbpass = 'dotCos215';
$dbname = 'db643975';
$con = mysql_connect($dbhost,$dbuser,$dbpass);
$db = mysql_select_db($dbname,$con);
$get=mysql_query("SELECT * FROM Postres ORDER BY postreID ASC");
$option = '';
while($row = mysql_fetch_assoc($get))
{
    $option .= '<option id="opcion" value = "'.$row['nombre'].'">'.$row['nombre'].'</option>';
}
?>
<html>
<body>
    <?php
    $postrevendido = $_POST['postre'];
    $preciodelpostre = $_POST['precio'];
    if(isset($_POST['agregar'])){
        $sql = "INSERT INTO Ventas (id,fecha,postre_vendido,ganancia) VALUES(NULL,NOW(),'$postrevendido','$preciodelpostre')";
        $retval = mysql_query($sql);

        if(! $retval ) {
            die('Could not enter data: <p></p><a href="ventasdiarias.php" target="_self">Agregar otro articulo</a>' . mysql_error());
        }

        echo "Postre agregado exitosamente!!" . "Volviendo..." . '<p></p><a href="ventasdiarias.php" target="_self">Agregar otro articulo</a>';            
        mysql_close($conn);

    }else {
        ?>
    <form method = "post" action = "<?php $_PHP_SELF ?>">
        <p>Producto Vendido 
            <select name="postre" id="postre"> 
                <?php
                echo $option . '<p></p>';

                ?>
            </select>
            <input name = "agregar" type = "submit" id = "agregar" 
            value = "Agregar Venta">
        </p>
    </form>
    <?php  }?>
</body>
</html>

最后,它只捕获(id,fecha,postre_vendido,ganancia)的前3列并且asigns column&#34; ganancia&#34;值为0.

你们有任何想法如何解决这个问题?提前谢谢!

1 个答案:

答案 0 :(得分:0)

价格没有插入,因为你的<form>中没有控制价格,但我认为修复此问题的方法实际上是而不是添加这样的控件。在我看来,您真的不需要或希望用户输入价格,您应该在发布表单时从产品表中阅读。有各种方法可以做到这一点。一种方法是设置它,因为您要在<select>中显示选项。

while($row = mysql_fetch_assoc($get)) {
    $option .= '<option id="opcion" value="'.$row['postreID'].'">'
                    .$row['nombre']
              .'</option>';
    if (isset($_POST['postre']) && $row['postreID'] == $_POST['postre']) {
        $preciodelpostre = $row['price'];
    }
} ?>

如果您这样做,请务必在代码后面删除$preciodelpostre = $_POST['precio'];;由于表单上没有名为'precio'的控件,因此会使用null覆盖之前的值,该值最终会在插入的行中显示为0