我的2总r相互混合我怎么能把它们分开?

时间:2011-05-23 11:25:01

标签: php

我要创建一个在线卡交换商店,在那里他们可以买卖他们的卡,所以我制作了2个推车系统。传入卡1个,传出卡1个。一切都很顺利。这是我的代码请帮助我。

<?php
// cart function for card in 
function cardin () {
foreach($_SESSION as $name => $value) {
        if ($value >0) {
            if (substr($name, 0, 5)=='cain_') {
                $id = substr($name, 5, (strlen($name)-5));
                $get = mysql_query('SELECT id, name, inprice FROM cards WHERE id='.mysql_real_escape_string((int)$id));
                while ($get_row = mysql_fetch_assoc($get)){
                    $sub = $get_row['inprice']*$value;
                echo '<table align="center" width="900" border="1">
  <tr>
    <td width="382" align="center">'.$get_row['name'].'</td>
    <td width="89" align="center">'.$value.'</td>
    <td width="121" align="center">' .$get_row['inprice'].'</td>
    <td width="124" align="center">'.$sub.'</td>
    <td width="79" align="center"><a href="cart.php?removein='.$id.'">[-]</a></td>
    <td width="79" align="center"><a href="cart.php?addin='.$id.'">[+]</a></td>
  </tr>
</table>';
                }
            }
        }
    }
}
// cart funciotn for out
function cardout () {
foreach($_SESSION as $name => $value) {
        if ($value >0) {
            if (substr($name, 0, 5)=='caou_') {
                $id = substr($name, 5, (strlen($name)-5));
                $get = mysql_query('SELECT id, name, outprice FROM cards WHERE id='.mysql_real_escape_string((int)$id));
                while ($get_row = mysql_fetch_assoc($get)){
                    $sub = $get_row['outnprice']*$value;
                echo '<table align="center" width="900" border="1">
  <tr>
    <td width="382" align="center">'.$get_row['name'].'</td>
    <td width="89" align="center">'.$value.'</td>
    <td width="121" align="center">' .$get_row['outprice'].'</td>
    <td width="124" align="center">'.$sub.'</td>
    <td width="79" align="center"><a href="cart.php?removeout='.$id.'">[-]</a></td>
    <td width="79" align="center"><a href="cart.php?addout='.$id.'">[+]</a></td>
  </tr>
</table>';
                }
            }
        }
    }
}
/////total function///////
///////////////////////// this is my problem ////////////////
// totalin funciotn similar to cart funciont only doing for return the total //////////////
function totalin () {
    foreach($_SESSION as $name => $value) {
        if ($value >0) {
            if (substr($name, 0, 5)=='cain_') {
                $id = substr($name, 5, (strlen($name)-5));
                $get = mysql_query('SELECT id, inprice FROM cards WHERE id='.mysql_real_escape_string((int)$id));
                while ($get_row = mysql_fetch_assoc($get)){
                    $sub = $get_row['inprice']*$value;
                }
            }
            $total += $sub;
        }
    }
    return $total;
}
//////total out function
function totalout () {
    foreach($_SESSION as $name => $value) {
        if ($value >0) {
            if (substr($name, 0, 5)=='caou_') {
                $id = substr($name, 5, (strlen($name)-5));
                $get = mysql_query('SELECT id, outprice FROM cards WHERE id='.mysql_real_escape_string((int)$id));
                while ($get_row = mysql_fetch_assoc($get)){
                    $sub = $get_row['outprice']*$value;
                }
            }
            $total += $sub;
        }
    }
    return $total;
}

$balance = totalin () - totalout ();
echo $balance;

我该如何解决我的问题?这是我的第一个网站,所以我不太了解更多,所以请帮助我们。请用代码回答//请//请//请。

1 个答案:

答案 0 :(得分:0)

我没有看到你宣布$total的位置,所以也许你正在使用全局?只需将这些本地人置于你的全部职能之中。

如果您没有使用全局,并且只是在其第一个赋值中声明$total,那么您可能会收到“未定义变量”警告。


编辑:以下是我修改现有总功能的方法:

function totalin () {
    $tin=0;
    foreach($_SESSION as $name => $value){
        if($value >0 && substr($name, 0, 5) == 'cain_') {
            $id = substr($name, 5, (strlen($name)-5));
            $get = mysql_query('SELECT id, inprice FROM cards WHERE id='.mysql_real_escape_string((int)$id));
            while ($get_row = mysql_fetch_assoc($get)){
                $sub = $get_row['inprice']*$value;
                $tin += $sub;
            }
        }
    }
    return $tin;
}

function totalout () {
    $tout=0;
    foreach($_SESSION as $name => $value) {
        if ($value >0 && substr($name, 0, 5)=='caou_'){
            $id = substr($name, 5, (strlen($name)-5));
            $get = mysql_query('SELECT id, outprice FROM cards WHERE id='.mysql_real_escape_string((int)$id));
            while ($get_row = mysql_fetch_assoc($get)){
                $sub = $get_row['outprice']*$value;
                $tout += $sub;
            }
        }
    }
    return $tout;
}