Mysql
 sql >> Base de données >  >> RDS >> Mysql

comment créer une chaîne séparée par des virgules à partir d'un tableau de résultats de requête dans php codeigniter

explode et implode fonctionnent comme prévu. Le premier est utilisé pour diviser une chaîne et renvoyer un tableau avec les morceaux, par exemple

 $pizza  = "piece1 piece2 piece3 piece4 piece5 piece6";
 $pieces = explode(" ", $pizza);
 echo $pieces[0]; // piece1
 echo $pieces[1]; // piece2

C'est pourquoi vous obtenez ceci :Array ( [0] => Array ( [0] => Semelle Premium Shore 30 ) [1] => Array ( [0] => G Diabetic Premium fermée Sandale Noire taille 09 ) ) lorsque vous print $prdtarray (echo print_r($prdtarray); ). Chaque fois que vous appelez $prdtarray[] = explode(",", $row1->product_name); vous créez un nouveau tableau avec un élément (un seul élément car $row1->product_name ne contient aucun ",") et en l'ajoutant à $prdtarray .

implode est utilisé pour joindre des éléments de tableau avec une chaîne, par exemple

$array = array('lastname', 'email', 'phone');
$comma_separated = implode(",", $array);

echo $comma_separated; // lastname,email,phone

Dans votre code puisque vous avez deux tableaux à l'intérieur de $prdtarray le résultat de $product est

 Array,Array

Ainsi, vous pouvez enregistrer le $row1->product_name value dans un tableau, puis utilisez implode pour créer un résultat de valeurs séparées par des virgules. Le code ressemble à ceci :

$this->db->select("product_name")
->from('sale_items')
->where('sale_items.sale_id',4221);
$q1 = $this->db->get();
if ($q1->num_rows() > 0) {
 foreach (($q1->result()) as $row1) {
$prdtarray[] = $row1->product_name;
}
$product=implode(',',$prdtarray); 
echo $product ; // Insole Premium Shore 30,G Diabetic Premium closed Sandal Black size 09