WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   php Variablen aus db einlesen (http://www.wcm.at/forum/showthread.php?t=160479)

ff 05.03.2005 20:54

php Variablen aus db einlesen
 
Vermutlich sitze ich auf der Leitung . . . ?!?

Wenn in einem php-script

$zeilen_abstand = "20";

steht, dann funtioniert das.


Wenn ich aber aus einer Datenbank Variable und Wert auslese, erhalte ich zwar

$variable = $zeilen_abstand;
$wert = "20";

dann funktioniert das nicht bei

$variable = $wert;


Wieso? Oder sollte ich das ueberhaupt anders loesen?

Danke
ff

ff 05.03.2005 21:00

Habs schon gefunden . . . .

$$variable = $wert;

und in der db kein $-Zeichen.

lg
ff

ff 05.03.2005 23:41

hmmmm . . . aber arrays schaff ich jetzt wirklich nicht . . .

Bei $farben = array("rot","blau");

schreibe ich was wohin?

$variable = $farben;
$wert = array("rot","blau");

kommt zwar richtig aus der Datenbank,

$$variable = $wert;

funktioniert leider nicht.

Bitte um Hilfe!
lg
ff

jak 06.03.2005 11:20

Wie schauts damit aus:

$variable = "farben"; //hier kein $
$wert = array("rot","blau");
$$variable = $wert;

Jak

ff 06.03.2005 17:53

Danke fuer dein Bemuehen, aber leider funktioniert das nicht. Nach einer sehr, sehr langen Nacht, habe ich letztendlich doch folgende Loesung gefunden:

In den db-spalten steht:

Code:


--- variable ---    ----- wert -----

produkt            Rasenmaeher AX-17
farben              rot|blau|gruen

----------------    -----------------

Einlesen der Daten . . . . und dann:

if (substr_count($wert, "|") > 0) {  // schau ob | vorkommt
  $$variable = explode("|",$wert);  // ja - dann mache aus string ein array
} else {
  $$variable = $wert;                      // nein - dann lese den string als normale variable ein
}

Warum sieht das sieht das nur so furchtbar einfach aus . . . . nachdem es fertig ist . . . ???
lg
ff

AlexanderFX 07.03.2005 14:43

da hätt ich auch ne gleine frage..

wenn ich $variable = "rot"; habe
und dann
$$wert = $variable;
hab ich dann eine variable namens $rot ?
oder wie funktioniert das

jak 07.03.2005 16:23

Genau das. Du kannst dir den Variablennamen auch "zusammenbasteln"
z.B.
for ($i=0; i<10;i++){
$$"person_".$i."_vorname"="bla";
$$"person_".$i."_nachname"="blabla";
$$"person_".$i."_telNr"=123;
}
Könnte aber sein daß man eine Klammer braucht also: $$("person_".$i."_vorname")="bla";

Jak

ff 07.03.2005 23:45

Ergaenzung zu meinem Script fuer Interessierte:

$$variable = array_map("trim",(explode("|",$wert)));

Das Abschneiden der Leerzeichen vor und nach jedem Array-Wert erleichtert die Lesbarkeit in der Werte-Spalte der Datenbank.

Neben
rot|blau|gruen
funktioniert nun auch
rot | blau | gruen

Bei Einzelwerten kann $$variable = trim($wert); auch nicht schaden . . .

ff


Alle Zeitangaben in WEZ +2. Es ist jetzt 00:05 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag