Php脚本循环5次,然后死掉
如何让php文件的这一部分(查询我的数据库)运行5次,然后在第5次尝试后如果条件仍然为false,则停止运行 以下是我要循环的文件部分:Php脚本循环5次,然后死掉,php,Php,如何让php文件的这一部分(查询我的数据库)运行5次,然后在第5次尝试后如果条件仍然为false,则停止运行 以下是我要循环的文件部分: if ((isset($_POST['_Commandeviapaypal'])) && ($PaypalStatus != "Completed")) { sleep(60); $PaypalPayment = "SELECT payment_amt FROM al_paypal WHERE ((item_number='" .$No
if ((isset($_POST['_Commandeviapaypal'])) && ($PaypalStatus != "Completed"))
{
sleep(60);
$PaypalPayment = "SELECT payment_amt FROM al_paypal WHERE ((item_number='" .$No . "') || (item_number='" .$NoGift . "')) ";
$query1 = mysql_query($PaypalPayment);
$row1 = mysql_fetch_row($query1);
$PaypalPayment = $row1[0];
$PaypalConfirmation = "SELECT txn_id FROM al_paypal WHERE ((item_number='" .$No . "') || (item_number='" .$NoGift . "')) ";
$query2 = mysql_query($PaypalConfirmation);
$row2 = mysql_fetch_row($query2);
$PaypalConfirmation = $row2[0];
$PaypalStatus = "SELECT payment_status FROM al_paypal WHERE ((item_number='" .$No . "') || (item_number='" .$NoGift . "')) ";
$query3 = mysql_query($PaypalStatus);
$row3 = mysql_fetch_row($query3);
$PaypalStatus = $row3[0];
}
感谢您的帮助。添加一个变量,记录您迄今为止的尝试次数,并在达到5次时停止循环
if ((isset($_POST['_Commandeviapaypal'])) && ($PaypalStatus != "Completed"))
{
$attempts = 0;
while ($attempts < 5)
{
// other code
if (/* successful */)
{
break;
}
$attempts = $attemps + 1;
}
}
if((isset($\u POST['''u Commandeviapaypal'))和($PaypalStatus!=“已完成”))
{
$truments=0;
而($尝试次数<5次)
{
//其他代码
如果(/*成功*/)
{
打破
}
$attemps=$attemps+1;
}
}
您可以使用for循环迭代5次,循环中还有一个附加条件,如下所示:
for ($i = 0; $i < 5 && (CONDITION); ++$i) {
//Code here
}
用于($i=0;$i<5&&(条件);+$i){
//代码在这里
}
为什么要这样做?为什么有3个请求要获取数据库中的同一行?您意识到,像apache这样的大多数web服务器都有一个超时,通常默认为5分钟,并且每次循环迭代都会休眠60秒:5*60秒=5分钟。。。巧合我认为不要对循环使用。如果查询成功,请设置一个表示查询成功的变量,然后使用break
退出循环。这不是同一行。相同的表和相同的条件是同一行。但有3个不同的列。循环,而不是条件。它应该是一个,而。是的,我刚刚意识到。现在应该好多了。