2016-06-09 3 views
0

Ich möchte hier erreichen, ist es, alle Informationen in einer Zeile getrennt durch Kommas einzufügen und nicht eine weitere Spalte für jede Daten.PHP mysqli einfügen zusammen mit Kommas statt eins nach dem anderen

Ich möchte diese

john,mark,mary,luke,james 

nicht diese

john 
mark 
mary 
luke 
james 

Mein Code

// Get all the users 
$query = "SELECT SAL.mentor AS mentor, ACC.username AS username "; 
$query .= "FROM ec_accounts ACC "; 
$query .= "LEFT JOIN ec_info INF ON ACC.user_id = INF.iuid "; 
$query .= "LEFT JOIN ec_sales SAL ON ACC.user_id = SAL.suid "; 
$query .= "ORDER BY SAL.mentor"; 

$s = $sqlConnection->query($query); 

if (!$s) { 
    die($sqlConnection->error); 
} else { 
    while ($row = $s->fetch_assoc()) { 
     $exarr = explode(',', $row['username']); 

     $sqlConnection->query("INSERT INTO mytable (exceptions) VALUES('$exarr')"); 
    } 
} 
+0

Was ist falsch verwenden ??? –

+0

also warum benutzt du explode? :) und warum Sie es in PHP tun müssen. Es sieht so aus, als ob es in der Datenbank direkt gemacht werden kann, sieht aber nicht so aus, als ob eine Schleife notwendig ist. – Robert

+0

Was ist der Wert von 'print_r ($ row);' – Saty

Antwort

1

Sie müssen Sie Abfrage außerhalb der while-Schleife einzufügen schreiben und verketten Sie mit , Benutzername

while ($row = $s->fetch_assoc()) { 
    $username .= $row['username'] . ",";// create string like john,mark,mary,luke,james, 

} 
// outside while loop 
$username = rtrim($username, ",");// remove last comma 

$sqlConnection->query("INSERT INTO mytable (exceptions) VALUES('$username')"); 
0

die Sie interessieren ..

$s = $sqlConnection->query($query); 
if (!$s) { 
    die($sqlConnection->error); 
} 
else { 
    $str = ''; 
    while ($row = $s->fetch_assoc()) { 
    // concat comma with $str when $str is not empty. so it concate comma from second circle 
    if($str !=''){ $str .= ',';} 
    //concat username one by one to make complete string 
    $str .= $row['username']; 
} 
// Finally do insert the complete string into a table 
$sqlConnection->query("INSERT INTO mytable (exceptions) VALUES('$str')"); 
0

Sie können einfach SQL Group_concat Funktion in mysql

$query = "SELECT SAL.mentor AS mentor, group_concat(ACC.username) AS username"; 
$query .= "FROM ec_accounts ACC "; 
$query .= "LEFT JOIN ec_info INF ON ACC.user_id = INF.iuid "; 
$query .= "LEFT JOIN ec_sales SAL ON ACC.user_id = SAL.suid "; 
$query .= "GROUP BY mentor "; 
$query .= "ORDER BY SAL.mentor"; 
Verwandte Themen