解决的问题:感谢@ 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(商品名称
商品),价格(商品价格)。
我还有另一个名为“ ventas”的表,我想根据日期条件存储我所有的销售额,该表已经完成。
表: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列,并将“ ganancia”列赋值为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
。