问题解决了:这是解决方案,感谢@ 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.
你们有任何想法如何解决这个问题?提前谢谢!
答案 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
。