PHP 检查订单是否有效。

$order_id = $_GET["id"];//获取传过来的订单号。我传了1000条。
$str = $order_id;
$array = explode(',', $str);//把传过来的字符串转换成数组。
$sql = mssql_query("select * from new_orders where order_id = '$array[0]'");
if (!mssql_num_rows($sql)) {//判断SQL是否为空。
echo "订单无效";
} else {
$sql1 = mssql_query("select * from new_orders where order_id = '$array[1]'");
if(!mssql_num_rows($sql1)) {
........//难道我要写上1000次?
}
}

如果订单无效就提示订单无效,如果订单有效就继续执行下一个。 这样有1000条,难道我要写1000个判断? 求高手指点。小弟刚学PHP不久。

真有1000条呀,那你的压力可大哦,几十、百来条我还有办法对付,不过GET所有参数的总长度被限制在255个字符内,所以你暂时应该可以用我下面的方法:

$order_id = $_GET["id"];//获取传过来的订单号。1000条理论上可行,不过效率可能很糟糕,不过你可以放心的是GET传不了那么多。
$str = $order_id;
$array = explode(',', $str);//把传过来的字符串转换成数组。
$sql = mssql_query("select count(*) from new_orders where order_id = in($str)");
list($nums)=mysql_fetch_row($sql);
mysql_free_result($sql);
if ($nums!=count($array)) echo "提交的订单中只有 $nums 个是有效的,请检查!";追问

其实我只是要做一个审核处理,我的思路是这样的,点击审核,把一系列的订单号传过去(如:1231321,7887888,888888,)然后GET获取过来与另外一个表里的订单号核对,如果存在就继续审核下面一个,如果不存在就把该订单的状态修改一下 继续审核下面一个。
或者说我这个思路不是很正确。希望各位能给个好点建议。或者帮我处理一下上面的问题。 我可以加分的。

追答

我前面给的语句,用SELECT COUNT(*) FROM xxx WHERE ID IN (xx,xxx,xxx)的形式,可以审查这一批订单中是否有无效的,如果你要删除无效的只保留有效的,可以把语句中的COUNT(*)修改为order_id,然后把查出的结果重新组合,这样就相当于删除了参数中的无效订单。

希望你花一点时间理解我前面的代码,我相信你能看明白,也相信你能按照本贴的提示修改成功,祝你好运。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-14
$order_id = $_GET["id"];//获取传过来的订单号。我传了1000条。
$str = $order_id;
$array = explode(',', $str);//把传过来的字符串转换成数组。
for($i=0;$i<count($array);$i++)
{
$res = mssql_query("select * from new_orders where order_id = '".$array[$i]."'");
if (!mssql_num_rows($res))
{
echo "订单无效";
}
else
{
echo "订单有效";
}

}追问

其实我只是要做一个审核处理,我的思路是这样的,点击审核,把一系列的订单号传过去(如:1231321,7887888,888888,)然后GET获取过来与另外一个表里的订单号核对,如果存在就继续审核下面一个,如果不存在就把该订单的状态修改一下 继续审核下面一个。
或者说我这个思路不是很正确。希望各位能给个好点建议。或者帮我处理一下上面的问题。 我可以加分的。

追答

前面的判断没什么大问题。
比如订单在new_orders不存在的状态为3,这样:
$order_id = $_GET["id"];
$str = $order_id;
$array = explode(',', $str);//
for($i=0;$i<count($array);$i++)
{
$res = mssql_query("select * from new_orders where order_id = '".$array[$i]."'");
if (!$res))
{
mssql_query("update old_orders set order_status=3 where order_id= '".$array[$i]."'");
}

}

第2个回答  2011-12-14
。。。。。。。。。。。。。。。。。
foreach 。。。。。。。。。。。。。。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网