FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Medlem
|
Hej alla!
Sitter och blir inte klok på hur jag skall lösa detta. Är ganska säker på att det finns en smart lösning på detta... Jag har en del variabler i en MYSQL-tabell. I stället för att ställa en fråga varje gång jag behöver ett av dessa värden så tänkte jag assigna dessa till variabler med en enda SQL-fråga. De kolumner jag vill använda från tabellen är 'name' och 'value' och assigna 'value' till variabeln 'name'. Kod:
$settingsArray = @mysql_query("SELECT * FROM `settings`"); while($row = @mysql_fetch_array($settingsArray)) { $variableName = "$" . $row['name']; $variableName = $row['value']; // FEL! } / Mats |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Klarade millennium-buggen
|
Du har alltså php-kod som värde i ett databasfält som du vill exekutera?
Att bara skriva ut koden fungerar inte då de ät strängar. Jag rekommenderar hellre att du har en "config-fil" som inkluderas på sidan. Annars kanske man kan köra en "eval" i php (Response.Execute i asp). |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Medlem
|
Ja, jag har ett värde som ett fält i en databas.
Jag vill inte köra en config-fil eftersom dessa värden lätt skall kunna ändras från en adminsida. Tabellen ser ut typ så här: id name value 1. sitename www.google.se 2. adminemail [email protected] osv osv... Jag får inte detta att funka. Kod:
$settingsArray = @mysql_query("SELECT * FROM `settings`"); while($row = @mysql_fetch_array($settingsArray)) { eval("$" . $row['name'] . "=" . $row['value'] . ";"); } echo $sitename; |
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Bara ett inlägg till!
|
Hej Mats.
Får jag föreslå att du gör en variabel som håller all config: Så istället för $FilePath använder du $conf['FilePath'].. Get it? B) |
|||
![]() |
![]() |
![]() |
#5 | |||
|
||||
Medlem
|
Javisst! Tack!
Det är ett bra alternativ. Blir dock lite konfunderad varför det inte funkar. Denna kod fungerar om jag inte har mellanslag eller dylikt i variabelvärdet. Kod:
$settingsArray = @mysql_query("SELECT * FROM `settings2`"); while($row = @mysql_fetch_array($settingsArray)) { eval('$' . $row['name'] . '=' . $row['value'] . ';'); } echo $sitename; |
|||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Medlem
|
Jag kör nu som coredev föreslog. Funkar kanon! Tack.
Kod:
$settingsArray = @mysql_query("SELECT * FROM `settings`"); while($row = @mysql_fetch_array($settingsArray)) { $conf[$row['name']] = $row['value']; } echo $conf['sitename']; |
|||
![]() |
![]() |
Svara |
|
|