2013-06-06 3 views
0

Я не могу seemn, чтобы сделать эту работу кто-то может помочь определить, что является неправильным:PHP преобразовать массив в запятых строка

$result = mysql_query("SELECT accounts_client_email.client_email FROM accounts_client_email WHERE accounts_client_email.accounts_client_id = 1", $con); 

while($row = mysql_fetch_assoc($result)){ 
$new_array[] = $row; // Inside while loop 
} 

$tags = implode(', ', array($new_array)); 

echo $tags; 
+3

Вы собираете '$ row', а не единственный столбец результата. Получите доступ к полю требуемого массива. – mario

+1

as mario сказал '$ new_array [] = $ row ['client_email'];' – Dale

+1

кроме того, что сказал @Dale, $ tags = implode (',', $ new_array); – aleation

ответ

1

Вы не правильно добавлять в массив, он должен быть:

$new_array[] = $row['client_email']; 

И вы инкапсулируете массив в другой массив без необходимости;

использование:

$tags = implode(', ', $new_array); 

Или echo $tags; просто выход "Array"

+0

Можно ли инкапсулировать вывод с помощью речевого знака ' – user1479891

+0

Итак, мои результаты выглядят так: ' [email protected] ',' [email protected] ' – user1479891

+0

OK отработал: $ new_array [] = "'". $ Row ['client_email']. "'"; – user1479891

1

Я думаю, вам просто нужно использовать сферу с именем столбца, чтобы заполнить в массиве

while($row = mysql_fetch_assoc($result)) 
{ 
    $new_array[] = $row['client_email']; // Inside while loop 
} 

I хотел бы также запомнить вас, что функции mysql_* официально устарели и больше не поддерживаются, поэтому я бы посоветовал вам перейти на mysqli или PDO для новых проектов.

+0

Привет! - это возвращает Array, Array в результатах – user1479891

+0

@ user1479981 попытаться использовать $ tags = implode (',', $ new_array); – Fabio

1

Вы должны использовать скобки

$new_array[] = $row[]; // Inside while loop 

Если это не работает, используйте

$new_array[] = $row['client_email']; // Inside while loop 
+0

номер 2 отлично работал благодаря – user1479891

0

использовать для петли

$array_to_string=""; 
for($i=0;$i<=count($result_array)-1;$i++) 
{ 
    if($i != count($result_array)-1) 
    { 
     $array_to_string .= $result_array[$i].","; 
    }else 
    { 
     $array_to_string .= $result_array[$i]; 
    } 
} 
echo $array_to_string; // you get the string as a commoa seperated values which is available in the array 
0

Если вам просто нужно, разделенных запятыми, не массив, вы можете сделать это следующим образом:

while($row = mysql_fetch_assoc($result)) 
{ 
    if(empty($tags) 
     $tags = $row['client_email']; 
    else 
     $tags .= ', '.$row['client_email']; 
} 
echo $tags; //will display comma separated string - no arrays needed 
Смежные вопросы