Как проверить, существует ли в данный момент значение в цикле while? - PullRequest
0 голосов
/ 29 сентября 2011

Допустим, у меня есть эта таблица в моей базе данных ...

 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>';
}

Мой вопрос заключается в том, как мне «сказать» PHP в цикле while, что если «имя» уже существует, вместо использования $ beginventory для получения $ Осталось, следует использовать предыдущий $ Осталосьчтобы получить правильное значение для текущего.

Я знаю, что проще, если я сохраню значения в базе данных, это мой последний вариант, если я не могу понять это.

1 Ответ

2 голосов
/ 29 сентября 2011
$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'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...