我有以下代码,它给了我一些时间,为什么for ($x = 1; $x <= $quantity; $x++)
循环中的变量在跟随它的数据库插入查询中调用时除了null
之外没有返回任何内容,或者当我尝试使用var_dump($cVnum);
进行调试时。
以下是代码:
if ($cash >= $product['cost'] * $quantity) {
// Substract cash
$receiver = $userData['login'];
if ($receiver != "") {
//all variables safe
$database->setDB("account")->mkquery("UPDATE {{table}} SET ".$cashfield." = (".$cashfield." - ".$product['cost'] * $quantity.") WHERE id = '".$accountid."' LIMIT 1", "account");
// For each quantity
for ($x = 1; $x <= $quantity; $x++) {
// Insert vnums to item_award
for ($i = 1; $i <= 4; $i++) {
$cVnum = $product['vnum'.$i];
if ($cVnum > 0) {
$socket0 = 0;
$socket2 = 0;
if ($product['vnum'.$i.'_time'] > 0) {
if ($cVnum == 72701 || ($cVnum > 71069 && $cVnum < 71075) || ($cVnum > 72722 && $cVnum < 72731)) {
$socket2 = $product['vnum'.$i.'_time'];
} else if ($cVnum == 47001 ||
($cVnum > 41136 && $cVnum < 41145) ||
($cVnum > 45078 && $cVnum < 45084) ||
($cVnum > 71164 && $cVnum < 71168) ||
($cVnum >= 45139 && $cVnum <= 45144) ||
($cVnum >= 41311 && $cVnum <= 41314)) {
$socket0 = time() + ($product['vnum'.$i.'_time']*60*60*24);
} else {
$socket2 = time() + ($product['vnum'.$i.'_time']*60*60*24);
}
}
}
}
}
$database->setDB("player");
$insert = [
"login" => $receiver,
"vnum" => $cVnum,
"count" => $quantity,
"given_time" => array("func", "NOW()"),
"socket0" => 22,
"mall" => 1
];
$logok = $database->insert($insert, "item_award");
}
}
我现在已经待了六个小时了,无法弄清楚出了什么问题。
更新:我缩小了$cVnum = $product['vnum'.$i];
问题所在的范围。我注意到当我删除$i
并且变为$product['vnum']
时,变量返回了我预期的值。可以有一个修复,以便我可以使用$i
变量吗?当包含null
变量时,为什么会返回$i
?
答案 0 :(得分:0)
对于String运算符,如果希望PHP解析变量,则必须使用双引号:li[id$="group-2"] {
display:none;
}