2014-04-03 55 views
0

我想改变这一行:while (($number = fgetcsv($handle, 32768, ',')) !== FALSE)来检查用户是否有限制执行任务。PHP虽然与mysql查询功能

我想补充这样SELECT * FROM user WHERE user = $username AND queryused < limit的东西,如果它得到一个结果,while funcions继续如果没有,它停止。

+0

在while作为条件前使用一些变量,然后在每次迭代结束时将查询结果赋值给该变量,我不知道我是否理解 – arieljuod

+0

@arieljuod这就是我想要的,但我不是专家,你能帮忙吗? – ForeverSJC

+0

你如何运行查询?什么是查询,什么是限制?任何代码? – arieljuod

回答

0

像@arieljuod建议的,你可以做这样的事情。

$count = 0; 
while ($count < YOUR_LIMIT && $number = fgetcsv($handle, 32768, ',')){ 
    //do query 
    $count++; 
} 

这样,每个你迭代时,循环将执行仅当$号码已被设置为一个值,每个前面的查询已经成功的功能。如果查询失败,则不会有其他迭代通过该条件。

注意:您正在ASSIGNING while条件中的$ variable数字。如果它接收到“真值”(即不是0,空等),则它将被认为是“真实的”,即使它本身不是布尔值。

+0

当然,但应该从数据库加载计数和限制每次它循环 – ForeverSJC

+0

似乎像一个沉重的循环...但你可以做一个单独的查询,存储的价值观,并在另一个查询中使用它们,如果你真的需要那。 –

0

你应该只加载“限制”和“queryused”循环之前一次,做循环,然后更新的queryused价值,像

$used = query_to_get_queryused_from_db; 
$limit = query_to_get_limit_from_db; 
$count = 0; 
while($count+$used < $limit && $number = fgetcsv($handle, 32768, ',')){ 
    //something 
    $count++; 
} 
query_to_update_queryused_on_db //using $count+$used 

在每次迭代做一个查询reaaaaaally不好,总是试图在循环内部进行查询,只有在没有其他方式时才这样做