[PHP] Problem mit implode

KingLouie

Active member
ID: 145230
L
5 Juli 2006
26
1
Hallo,
ich hoffe mir kann jemand helfen.
Und zwar habe ich mir aus meiner Datenbank z.B. alle Namen geholt. Nun kann ich sie ja z.B. mit $row["namen"] ausgeben. Soweit ok.
Nun will ich Sie aber durch ein Komme getrennt ausgeben und brauche dazu ja implode. Ich habe es mal so versucht, bekomme aber eine fehlermeldung:
$namenmitkommegetrennt = implode(",", $row["namen"]);
Kann mir vielleicht sagen, wie ich es dann machen muss?

Grüße,

KingLouie
 
Zuletzt bearbeitet:
Bitte den Titel anpassen ;)


PHP:
 Problem mit implode

Mach aus den " bei namen mal ' ;)

Liebe Grüße,
Martin
 
@ du-nervst: danke für den tipp. die " gegen ' austauschen habe ich auch schon versicht bringt nichts. den titel habe ich übrigens auch geändert.

jo, sorry, die fehlermeldung zu posten habe ich vergesen...

es kommt nur
Code:
Warning: implode():Bad arguments. in ...
 
die " gegen ' austauschen habe ich auch schon versicht bringt nichts.
Es kann auch nichts bringen, weil es in diesem Fall das selbe is ;)
es kommt nur
Code:
Warning: implode():Bad arguments. in ...
Spricht für sich: $row['namen'] ist kein Array (das hätte mich auch gewundert, da von mysql_fetch_array() $row das Array ist, nicht $row['namen'] ;))

Was steht denn in $row['namen'] drin ? Und was willst du erhalten ?
 
Hi,
in $row['namen'] sthen Namen die so ausgegeben werden: DanielGustavWillhelmAndreasEliasBastian und so weiter halt.
Was ich haben will ist: Daniel, Gustav, Willhelm, Andreas, Elias, Bastian. Also die Namen halt durch ein Komma getrennt...
 
Kann mir keiner Helfen, wie das funktioniert?

Grüße,

KingLouie
Ich glaube das Problem ist, das du $row['namen'] angibst und du das nicht in einer Schleife auslesen lässt.., daher gibt er nur einen namen an,.. wie also soll er dir die einzelnen Namen durch Komma trennen?
Wenn du das ganze in ner Variable brauchst kannst du´s auch in ner Schleife machen..

PHP:
$neu="";
schleife()
{
$neu=$row['namen'];
$weiter.='$neu, ';
}
Gibt aber sicherlich ne bessere Lösung, ich hab aber Allgemein immer noch nicht richtig verstanden wo dein Fehler liegt..

Liebe Grüße,
Martin
 
in $row['namen'] sthen Namen die so ausgegeben werden: DanielGustavWillhelmAndreasEliasBastian und so weiter halt.
Was ich haben will ist: Daniel, Gustav, Willhelm, Andreas, Elias, Bastian.
Und wie soll das Script die Namen trennen, wenn die alle hintereinander stehen ? ;)
Am Großbuchstaben erkennen, oder wie stellst du dir das vor ?

@LasMiranda:
Verlass dich nie drauf, dass die DB-Struktur ok is, drum hab ich gefragt :biggrin:
 
Und es steht ja da, dass die so ausgegeben werden und nicht, dass die so gespeichert sind ;) Ich bezweifle, dass die so gespeichert sind
Stimmt auch wieder. Nunja, ich hab zumindest klar gefragt und bin davon ausgegangen, dass ich auch eine Antwort auf meine Frage bekomm und nicht etwas anders :roll:

Mit deinem Codebeispiel kann es aber durchaus sein, dass es nur einen Datensatz gibt, wo tatsächlich alle Namen aneinander gereiht sind :ugly:
 
Hallo,
nein, die Namen sind nicht Hintereinander gespeichert...
Es gibt in der Datenbank ne Spalte Namen, Vornamen, EMail und so weiter und werden mit mysql_fetch_array abgerufen.
Mein Problem ist nicht, wie ich die Dinger hinterher mit Komma getrennt ausgebe, sondern das ich die Namen mit einem Komma getrennt abspeichere. Z.B. in einem String?


Grüße,

KingLouie
 
nein, die Namen sind nicht Hintereinander gespeichert...
Es gibt in der Datenbank ne Spalte Namen, Vornamen, EMail und so weiter und werden mit mysql_fetch_array abgerufen.
Ok klar. Es gibt User, die würden auf die Idee kommen, drum musste ich nachfragen :biggrin:
Mein Problem ist nicht, wie ich die Dinger hinterher mit Komma getrennt ausgebe, sondern das ich die Namen mit einem Komma getrennt abspeichere. Z.B. in einem String?
Ob du sie ausgibst oder nur in einem String "abspeicherst" ist egal, selbe Vorgehensweise, wie schon gepostet:
PHP:
$res=mysql_query("SELECT `name` FROM `table`");
$names=array();
while($row=mysql_fetch_array($res))
  $names[]=$row['name'];
mysql_free_result($res);

// Jetzt hast du mit $names ein Array, was alle Namen enthält
// zum Testen: print_r($names);

// Speichern mit Komma getrennt:
$comma_sep=implode(', ',$names);

// Evtl. ausgeben:
echo $comma_sep;
 
Hi,
danke erst Mal für deine Lösung. Ich habe es jetzt mal so probiert. Die Fehlermeldung erscheint nicht mehr...allerdings erscheinen auch die mit Komma getrennten Namen nicht, wenn ich Sie ausgeben will...
 
dann liefert dein sql query keine resultate, das array wird also net befüllt und die ausgabe liefert somit auch nüx..

mit dem sogar schon eingefügten test, kannst du das auch leicht überprüfen.