Entwickler-Ecke
Programmiersprachen (Server) - Assoziatives Array in String benutzen
GerhardS - Di 08.07.14 00:56
Titel: Assoziatives Array in String benutzen
Hallo,
Es ist einfach, mit PHP eine Tabelle auszulesen und darzustellen:
PHP-Quelltext
1: 2: 3: 4: 5: 6:
| while ($row = mysql_fetch_assoc($result)) { echo $row["id"]; echo " "; echo $row["fname"]; echo ""; } |
Neues Ziel ist aber folgender String:
PHP-Quelltext
1:
| $pass = array('nov13','jan14','feb14','mar14','apr14','mai14','jun14','aug14','sep14','okt14','nov14','dez14'); |
Die Werte in der Klammer entsprechen Einträgen in der Tabelle (Spalte "fname"). Wenn ich zunächst versuche, einen String wie "'nov13','jan14','feb14','mar14','apr14','mai14','jun14','aug14','sep14','okt14','nov14','dez14'"
hiermit
PHP-Quelltext
1: 2: 3: 4:
| while ($row = mysql_fetch_assoc($result)) { $myline = echo "'".$row["fname"]."'".","; } |
zu erzeugen, streikt der PHP-Interpreter.
Hat jemand einen Tipp für mich?
Moderiert von Christian S.: Code- durch PHP-Tags ersetzt
GerhardS - Di 08.07.14 05:18
Ich habe inzwischen eine Annäherung gefunden. Zunächst muss der Select-Befehl auf die interessierende Spalte beschränkt werden. Dann:
PHP-Quelltext
1: 2: 3: 4:
| while ($row = mysql_fetch_assoc($result)) { $comma_separated = implode(", ", $row); echo "'" . $comma_separated . "', "; } |
Das schreibt die Werte aus der Spalte in eine Zeile. Zwei Kleinigkeiten bleiben übrig:
1) Wie entferne ich das letzte Komma in der Zeile?
2) Wie speichere ich die Zeile als Stringvariable?
Moderiert von Christian S.: Code- durch PHP-Tags ersetzt
GerhardS - Di 08.07.14 14:59
Hier die Lösung:
PHP-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| $myvar = ""; while ($row = mysql_fetch_assoc($result)) { $comma_separated = implode(", ", $row); $myvar .= "'" . $comma_separated . "', "; } $newstr = substr($myvar, 0, (strlen($myvar) -2)); echo $newstr; echo "<br>"; $pass = explode(",", $newstr); echo "Foreach-Schleife: <br>"; foreach($pass AS $name) { echo $name."<br>"; } |
Moderiert von Christian S.: Code- durch PHP-Tags ersetzt
Christian S. - Di 08.07.14 15:33
Hallo,
müsste es nicht so einfacher gehen?
PHP-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| $pass = array(); while ($row = mysql_fetch_assoc($result)) $pass[] = $row["fname"];
$newstr = implode(", ", $pass); echo $newstr;
echo "Foreach-Schleife: <br>"; foreach($pass AS $name) { echo $name."<br>"; } |
Habe den Code nicht laufen lassen, aber so von der Idee her sollte es gehen.
Grüße
Christian
GerhardS - Di 15.07.14 13:59
Funktionieren tut's, aber die Anführungszeichen (') sind weg. Die braucht die gewünschte Variable
$pass=array('nov13', 'jan14', 'feb14', 'mar14', 'apr14', 'mai14', 'jun14','aug14','sep14','okt14','nov14','dez14');
aber.
Christian S. - Di 15.07.14 18:44
Die kannst Du in der ersten while-Schleife ja sehr einfach ergänzen :nixweiss:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!