2012-07-16 41 views
0

我想是这样的:卷曲,PHP - 环环路

$i = 1; 
$y = 1; 

while($i <= 10 and $y <= 5) 
{ 
if($i==10) 
{ 
echo 'I = '.$i.', Y = '.$y.'<br>'; 
$i = 1; 
$y = $y+1; 
} 
else 
{ 
echo 'I = '.$i.', Y = '.$y.'<br>'; 
$i = $i + 1; 
} 
} 

它返回

I = 1, Y = 1 
I = 2, Y = 1 
.... 
I = 1, Y = 2 
I = 2, Y = 2 
.... 
I = 1, Y = 3 
I = 2, Y = 3 

等,等,与卷曲使用。但它不起作用。我究竟做错了什么?

$i = 1; 
$y = 1; 

while($y <= 9) 
{ 
while($i==499) 
{ 
if($connection = db_connect()) 
{ 
$post = array('something' => 'abc', 'value_of_y' => ''.$y.'', 'value_of_i' => ''.$i.''); 
$str = curl_grab_page('http://localhost/send.php?true=1','','off',$post); 

$str2 = mysql_real_escape_string($str); 
$sql = "INSERT INTO abc (txt) VALUES ('$str2')"; 

$i = 1; 
$y = $y+1; 
} 
else 
{ 
echo 'Database connection error!'; 
} 
} 
while($i != 499) 
{ 
if($connection = db_connect()) 
{ 
$post = array('something' => 'abc', 'value_of_y' => ''.$y.'', 'value_of_i' => ''.$i.''); 
$str = curl_grab_page('http://localhost/send.php?true=1','','off',$post); 

$str2 = mysql_real_escape_string($str); 
$sql = "INSERT INTO abc (txt) VALUES ('$str2')"; 

$i = $i + 1; 
} 
else 
{ 
echo 'Database connection error!'; 
} 
} 
} 

但是页面一直在载入,没有任何反应。我必须使用“if($ connection = db_connect()){”但我认为这是让我的代码搞乱了。你能看一下吗?谢谢。

+0

你为什么要连接500次?我会先连接,然后开始循环。另外,两个cURL帖子是相同的:保持干爽;不要重复自己。 – 2012-07-16 10:10:31

+0

如果你的数据库连接失败,你的循环将永远不会退出,因为你永远不会退出。 – davidethell 2012-07-16 10:18:31

+0

你忘了的mysql_query($的SQL) – 2012-07-16 10:21:12

回答

2

我的解决办法如下:

$y = $x = 1; 

if (!$connection = db_connect()) { 
    echo "connection failed!"; 
} else { 
    while ($y <= 9) { 
    $x = 1; 
    while ($x <= 499) { 
     // do your things with $x and $y, don't forget mysql_query() ! 

     $x++; 
    } 
    y++; 
    } 
} 
+0

+1,更清洁。 – davidethell 2012-07-16 10:19:48

+0

不错,谢谢,它的作品:D – 2012-07-16 10:36:00

-1

也许这是一个开始?

$sql = "INSERT INTO abc (txt) VALUES ('".$str2."')"; 
+0

我不这么认为,因为它在没有while循环的情况下工作,但我也会尝试你的方式 – 2012-07-16 10:09:55

+0

这种语法的工作原理并不是必需的。来自OP的INSERT代码将工作得很好,因为该字符串使用双引号。 – davidethell 2012-07-16 10:10:00

+0

是的,这没有改变,仍然没有被添加到DB – 2012-07-16 10:11:45