Autor Beitrag
GerhardS
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Di 08.07.14 00:56 
Hallo,
Es ist einfach, mit PHP eine Tabelle auszulesen und darzustellen:
ausblenden 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:
ausblenden 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
ausblenden 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 user profile iconChristian S.: Code- durch PHP-Tags ersetzt
GerhardS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: 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:
ausblenden 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 user profile iconChristian S.: Code- durch PHP-Tags ersetzt
GerhardS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: Di 08.07.14 14:59 
Hier die Lösung:
ausblenden 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 . "', ";
}
// echo $myvar; //ergibt 'nov13', 'jan14', 'feb14', 'mar14', 'apr14', 'mai14', 'jun14',
$newstr = substr($myvar0, (strlen($myvar) -2));
echo $newstr//ergibt: 'nov13', 'jan14', 'feb14', 'mar14', 'apr14', 'mai14', 'jun14'
echo "<br>";
$pass = explode(","$newstr);
//Prüfen:
echo "Foreach-Schleife: <br>";
foreach($pass AS $name)
   {
   echo $name."<br>";
   }


Moderiert von user profile iconChristian S.: Code- durch PHP-Tags ersetzt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2261

Win 10
C# (VS 2019)
BeitragVerfasst: Di 08.07.14 15:33 
Hallo,

müsste es nicht so einfacher gehen?
ausblenden 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;

//Prüfen:
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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
GerhardS Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 49



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20442
Erhaltene Danke: 2261

Win 10
C# (VS 2019)
BeitragVerfasst: Di 15.07.14 18:44 
Die kannst Du in der ersten while-Schleife ja sehr einfach ergänzen :nixweiss:

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".