-4

これには問題があります

$total += $rows['price'] * $qty;

注意: 未定義の変数: 42 行目の D:\xampp\htdocs\WBPL-MusicLightDev\inc\functions.inc.php の合計

function wbpl_showCart() {
    global $db;
    $cart = $_SESSION['cart'];
    if ($cart) {
        $items = explode(',', $cart);
        //$contents = array();
        foreach ($items as $item) {
            $contents[$item] = (isset($contents[$item])) ? $contents[$item] + 1 : 1;
        }
        echo '<form action="index.php?page=cart&action=update" method="post" id="cart">';
        echo '<table border=0 align="center" class="table table-bordered">';


        foreach ($contents as $id => $qty) {
            $sql = "SELECT * from wbpl_product WHERE kd_product = '$id'";
            $result = mysql_query($sql) or die(mysql_error());
            $rows=mysql_fetch_array($result);
            //extract($row);

            echo    '<tr>
                        <td>Brand</td>
                        <td colspan="4">'. $rows['kd_product'] .'</td>
                    <tr>
                    <tr>
                        <td>Brand</td>
                        <td colspan="4">'. $rows['nama_brand'] .'</td>
                    <tr>
                    <tr>
                            <td>Instrument Type</td>
                            <td colspan="4">'. $rows['nama_instype'] .'</td>
                    </tr>
                    <tr">
                    <td rowspan="2">Price</td>
                    <td rowspan="2">Rp. ' . $rows['price'] . '</td>
                    <td rowspan="2"><input type="text" name="qty' . $id . '" value="' . $qty . '" size="2" maxlength="3" /></td>

                    <td rowspan="2">Rp. ' . ($rows['price'] * $qty) . '</td>

                    <td><a href="index.php?page=cart&action=delete&id=' . $id . '" class="btn btn-danger">Hapus</a></td>
                    </tr>
                    <tr><td><br></td></tr>';
            $total += $rows['price'] * $qty;
        }
        echo '</table>';
        $qty = getQty();


        echo '<p>Sub Total: <strong> Rp. ' . $total . '</strong></p>';



        //session_register('totalbayar');
        $_SESSION['totalbayar'] = $total;
        echo '<div><button type="submit" class="btn btn-primary">Update cart</button></div>';
        echo '</form>';
    } else {
        echo '<p>Keranjang belanja masih kosong.</p>';
    }
    //return join('', $output);
}
4

5 に答える 5

1

$total変数を宣言します。

$total = 0;

foreach ループに入る前に

問題は次のとおりです。

$total += ...;...の値に追加することを意味します$total$total、通知の原因となるループの最初の繰り返しではまだ定義されていません。

于 2013-04-16T13:48:13.067 に答える
0
$total = 0;

$total を使用する前にこれを設定すると、問題が解決します

于 2013-04-16T13:48:01.407 に答える
0

$x += y最初に変数値を読み取り、次に何かを追加してから、結果を(再)代入することを意味します。$totalforeach ループの最初の繰り返しでは、演算子の実行時に読み取る変数がない+=ため、警告が表示されます。
ループの前に変数を初期化します。

$total = 0;
foreach ($contents as $id => $qty) {
  [...]
  $total += something;
于 2013-04-16T13:48:08.330 に答える
0

演算子を使用するには+=、左側の変数を既に定義している必要があります。この問題は、使用$total前に初期化することで解決できます。$total += ...

$total = 0;
foreach (...)
    $total += ...

これは、$total += $xが内部的に に変換される$total = $total + $xためです。したがって、最初に使用するとき$total は undefined です。

于 2013-04-16T13:48:21.643 に答える