2009-02-24 293 views
0

下面是代码PHP字符串格式化

$i=0; 
while ($row = mysql_fetch_array($result)) 
    { 
    $output.="idno".$i."=".urlencode($row['usr_id']). 
    '&'."res".$i."=".urlencode($row['responce']). 
    '&'."sex".$i."=".urlencode($row['sex']). 
    '&'."com1".$i."=".urlencode($row['com1']). 
    '&'."com2".$i."=".urlencode($row['com2']); 
    $i++; 

    } 

输出I得到IDNO是COM2字符串我如何它们分开的一部分。

回答

4

您需要添加一个&$i不为零:

$i=0; 
while ($row = mysql_fetch_array($result)) 
     { 
    $output .= ($i ? '&' : '') . "idno".$i."=".urlencode($row['usr_id']). 
     '&'."res".$i."=".urlencode($row['responce']). 
     '&'."sex".$i."=".urlencode($row['sex']). 
     '&'."com1".$i."=".urlencode($row['com1']). 
     '&'."com2".$i."=".urlencode($row['com2']); 
    $i++; 

     } 
+0

AAAAH,这就是他的意思。 +1 – 2009-02-24 15:21:12

+0

是的,我不得不阅读这个问题几次才算出来呃 – Greg 2009-02-24 15:22:15

3

另一个解决方案是使用数组并随后加入其元素:

$array = array(); 
$i = 0; 
while ($row = mysql_fetch_array($result)) { 
    $array[] = "idno$i=".urlencode($row['usr_id']); 
    $array[] = "res$i=".urlencode($row['responce']); 
    $array[] = "sex$i=".urlencode($row['sex']); 
    $array[] = "com1$i=".urlencode($row['com1']); 
    $array[] = "com2$i=".urlencode($row['com2']); 
    $i++; 
} 
$output .= implode('&', $array); 

此外,您可以使用argName[]声明PHP在接收到这样的请求查询字符串时将转换为数组。

1

或者你可以这样做:

$array = array(); 
$i = 0; 
while ($row = mysql_fetch_array($result)) { 
    $array["idno$i"] = $row['usr_id']; 
    $array["res$i"] = $row['responce']; 
    //etc. 

    $i++; 
} 

$output = http_build_query($array);