我要创建一个在线卡交换商店,在那里他们可以买卖他们的卡,所以我制作了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;
我该如何解决我的问题?这是我的第一个网站,所以我不太了解更多,所以请帮助我们。请用代码回答//请//请//请。
答案 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;
}