2016-08-05 51 views
0

問題解決:這是解決方案,感謝@ dont-panic以及每個幫助我的人!從一個數據庫的不同列中提取2個值,只有1選擇

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),農佈雷(該 物品的名稱),價格(價格文章)。

我也有另一個名爲「ventas」的表,這是我想根據日期標準存儲所有銷售額的地方,這已經完成了。

表:塔斯 - ID(銷售ID),出生日期(註冊銷售日期), 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,出生日期,postre_vendido,ganancia)和asigns列 「ganancia」 值中的前3列結束的0.

你們有什麼想法如何解決這個問題?提前致謝!

+2

請將您的'db主機,用戶,密碼'替換爲一些虛擬文本。不要在問題中包含真正的憑據。保守祕密 – jonju

+0

表'Ventas' Auto_Increment的列'Id'? – jonju

+0

作爲一個建議,西班牙語的數量導致我相信你應該問[這裏](http://es.stackoverflow.com/) –

回答

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結尾。

+0

這是我需要的exaclty!非常感謝你是我的英雄!我想象一下,因爲有些單詞是西班牙語,你有點困惑,我只是改變了一些東西,如果有人發現它有幫助,我會在上面發佈一個修改。 –

+0

不客氣!我很高興它爲你工作。 –

+0

這並不是西班牙人所迷惑的,我真的會建議使用ID而不是名稱作爲選項的值(它往往更可靠獨特,但如果您的數據庫具有唯一的索引,名稱就可以)。當然,這需要改變你的Ventas表來引用ID而不是文章的名字,但是如果ID是Postres的主鍵,它將成爲Ventas更好的外鍵。我應該在答案中表達這種意見,而不是僅僅改變代碼。 –

相關問題