2011-09-29 114 views
0

比方說,我有這個表在我的數據庫......如何檢查當前循環中是否存在某個值?

id | name | beginventory | sold | datesold 
    101 | rock | 100   | 5 | 2011-9-12 
    201 | paper | 50   | 10 | 2011-9-13 
    301 | pen | 30   | 20 | 2011-10-1 
    101 | rock | 100   | 10 | 2011-10-1 
    101 | rock | 100   | 10 | 2011-10-2 
    201 | paper | 50   | 15 | 2011-10-3 

我想顯示的輸出...

name | current | sold | remaining | date sold 
    rock | 100  | 5 | 95  | 2011-9-12 
    paper | 50  | 10 | 40  | 2011-9-13 
    pen | 30  | 20 | 10  | 2011-10-1 
    rock | 95  | 10 | 85  | 2011-10-1 
    rock | 85  | 10 | 75  | 2011-10-2 
    paper | 40  | 15 | 25  | 2011-10-3 

這裏我的腳本(不工作)

while($info = mysql_query($getinfo)){ 
$name = $info['name'].'<br />'; 
$beginventory = $info['beginventory'].'<br />'; 
$sold = $info['sold'].'<br />' 
$remaining = $beginventory - $sold.'<br />'; 
$date = $info['datesold'].'<br />' 
echo '<tr>'; 
echo '<td>'.$name.'</td>'; 
echo '<td>'.$current.'</td>'; 
echo '<td>'.$sold.'</td>'; 
echo '<td>'.$remaining.'</td>'; 
echo '<td>'.$date.'</td>'; 
echo '</tr>'; 
} 

我的問題是如何「告訴」在一個while循環中的PHP,如果「名稱」已經存在,而不是使用$ beginventory來獲得$剩餘,它應該使用前面的$剩餘來獲得co正確的電流值。

我知道如果我將值存儲在數據庫中會更容易,如果我無法弄清楚這是我的最後一個選項。

回答

2
$left = array(); 

while($info = mysql_query($getinfo)){ 

    if (!isset($left[$info['name']])) $left[$info['name']] = $info['beginventory']; 
    $name = $info['name'].'<br />'; 
    $beginventory = $left[$info['name']].'<br />'; 
    $sold = $info['sold'].'<br />' 
    $remaining = $beginventory - $sold.'<br />'; 
    $date = $info['datesold'].'<br />' 
    echo '<tr>'; 
    echo '<td>'.$name.'</td>'; 
    echo '<td>'.$current.'</td>'; 
    echo '<td>'.$sold.'</td>'; 
    echo '<td>'.$remaining.'</td>'; 
    echo '<td>'.$date.'</td>'; 
    echo '</tr>'; 

    $left[$info['name']] -= $info['sold']; 
} 
相關問題