Avatar billede thb Nybegynder
25. maj 2004 - 22:59 Der er 24 kommentarer og
1 løsning

Oprette arrays udfra SQL

Hej alle

Jeg har lavet nogle instillings arrays, men nu vil jeg godt have tingene i en database... Hvordan er det muligt at bruge dem på samme måde som før.
De ser sådan her ud.. f.eks farve indstillinger:

$colorConfig = Array();
$colorConfig['topBorder'] = "#FFFFFF";

Thomas
Avatar billede krydset Nybegynder
25. maj 2004 - 23:11 #1
$config[color] = "#0000000";
$config[link] = "#000000";
$config[td] = "1px";
Avatar billede krydset Nybegynder
25. maj 2004 - 23:17 #2
TROR jeg misforstod spm :-P

prøver igen
$res = mysql_query("select * from config") or die(mysql_error());
while($row = mysql_fetch_array($res)) {
    $config['colors'][] = $row['colors'];
}
?>

Tror det kan bruges
Avatar billede thb Nybegynder
25. maj 2004 - 23:17 #3
Ja okay, jeg nok ikke regnet med at få en gengivelse af min egen kode.. :)
Jeg skal finde en måde at lave de arrays ud fra data i databasen..

Så man måske gennem colorconfig, navnet, og værdi i en tabel og så få det til at blive et array...

Thomas
Avatar billede thb Nybegynder
25. maj 2004 - 23:19 #4
Det skal være den anden vej... sådan at array'et hedder $colorConfig
Avatar billede krydset Nybegynder
25. maj 2004 - 23:21 #5
$res = mysql_query("select * from config") or die(mysql_error());
while($row = mysql_fetch_array($res)) {
    $colorConfig[] = $row['colors'];
}
?>
ellers ved jeg ikke hva du mener
Avatar billede thb Nybegynder
25. maj 2004 - 23:24 #6
det er fordi at jeg udskriver dem med print($colorConfig['topBorder']) og så kommer der til at stå en farve..

så det skal være noget i stil med $colorConfig[$row['navn']] = $row['værdi'] men den går vist ikke...  tror jeg nok... :)
Avatar billede krydset Nybegynder
25. maj 2004 - 23:28 #7
$res = mysql_query("select * from config") or die(mysql_error());
while($row = mysql_fetch_array($res)) {
    $config[row['name']][] = $row['colors'];
}
?>
Avatar billede thb Nybegynder
25. maj 2004 - 23:30 #8
Den vil jeg lige prøve... 2 sek...
Avatar billede krydset Nybegynder
25. maj 2004 - 23:33 #9
$config[row['name']][] = $row['colors'];
skal være
$config[$row['name']][] = $row['colors'];
Avatar billede thb Nybegynder
25. maj 2004 - 23:35 #10
hmm... det virker ikk :(
Avatar billede thb Nybegynder
25. maj 2004 - 23:39 #11
jeg tænkte på om man måske kunne bruge den funktion der hedder execute (tror jeg nok) den kan vist køre serverside kode efter alt det andet er blevet kørt... men jeg ved ikke hvor optimalt det er...
Avatar billede thb Nybegynder
25. maj 2004 - 23:40 #12
funktionen hedder eval()
Avatar billede krydset Nybegynder
25. maj 2004 - 23:41 #13
$res = mysql_query("select * from config") or die(mysql_error());
while($row = mysql_fetch_array($res)) {
    $ColorConfig = $array(color => "$row[din_raekke]");
}
?>
Hvad med det
Avatar billede krydset Nybegynder
25. maj 2004 - 23:43 #14
hov
$res = mysql_query("select * from config") or die(mysql_error());
while($row = mysql_fetch_array($res)) {
    $ColorConfig = array(color => "$row[din_raekke]");
}
?>
Avatar billede krydset Nybegynder
25. maj 2004 - 23:47 #15
hmm tror det er noget L*** jeg laver nu

er ikke saa haard i array haaber der kommer en og laver det
Avatar billede thb Nybegynder
25. maj 2004 - 23:47 #16
Det virker heller ikke... :(
Men det her virker, men jeg ved ikke hvor godt det er at køre... har du nogen ide om det ???

$sql = mysql_query("SELECT navn,vaerdi,klasse FROM config") or die(mysql_error());
while($row = mysql_fetch_row($sql)) {
  eval("\$". $row[2] ."['". $row[0] ."'] = \"". $row[1] ."\";");
}
Avatar billede krydset Nybegynder
25. maj 2004 - 23:48 #17
kender ikke eval() desværre
Avatar billede thb Nybegynder
25. maj 2004 - 23:49 #18
sjovt.. :)

taget fra php.net:

eval() evaluates the string given in code_str as PHP code. Among other things, this can be useful for storing code in a database text field for later execution.

Thomas
Avatar billede thb Nybegynder
25. maj 2004 - 23:49 #19
Så det bliver nok det jeg bruger... :)

Men hvis du lige smider et svar så får du point.. og tak for hjælpen..
Avatar billede Slettet bruger
26. maj 2004 - 01:38 #20
Lav en tabel med følgende felter:

id  (Ikke strengt nødvendig)
tema  (Kun nødvendig, hvis du vil have flere sæt farver i tabellen)
navn
farve

$sql = mysql_query("SELECT navn,farve FROM config WHERE tema='$tema'") or die(mysql_error());

while($row=mysql_fetch_assoc($sql)){
  $colorConfig[$row['navn']]=$row['farve'];
}
Avatar billede Slettet bruger
26. maj 2004 - 01:41 #21
Hvis du ikke ville have flere sæt farver, skal du bare fjerne WHERE tema='$tema' fra queryen, og hvis du vil have flere sæt, skal du selvfølgelig enten bruge din egen variabel eller sørge for at $tema indeholder navnet (eller nummeret, hvis du bruger det) på et tema.
Avatar billede thb Nybegynder
26. maj 2004 - 09:15 #22
Den konstruktion er prøvet før, og den vikrer ikke.. Desværre... Det ville ellers være det fedeste.. :)

Thomas
Avatar billede Slettet bruger
26. maj 2004 - 17:02 #23
Det er ikke samme konstruktion, som i tidligere har omtalt her i tråden. Der havde i nemlig et tomt sæt klammer også. Citat: $config[$row['name']][] = $row['colors'];

Denne konstruktion bruger jeg selv, og den virker.
Avatar billede thb Nybegynder
04. juni 2004 - 18:20 #24
Kan I ikke smide nogle svar...

Thomas
Avatar billede thb Nybegynder
06. juni 2004 - 15:02 #25
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester