форматирование строки php - PullRequest
       12

форматирование строки php

0 голосов
/ 24 февраля 2009

Вот код

    $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++;

    }

РЕЗУЛЬТАТ Я получаю idno является частью строки com2, как мне отделить их.

Ответы [ 3 ]

4 голосов
/ 24 февраля 2009

Вам нужно добавить &, когда $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++;

        }
3 голосов
/ 24 февраля 2009

Другое решение будет использовать массив и впоследствии объединить его элементы:

$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 голос
/ 24 февраля 2009

Или вы можете сделать это:

$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);
...