Gå til innhold

Hente innstillinger fra database


Anbefalte innlegg

Jeg setter opp en side som trenger en del innstillinger, og disse har jeg puttet inn i en database. Men jeg trenger å få hver enkelt innstilling puttet inn i en egen variabel.

 

Databasen er slik:

navn: navn på innstilling

variabel: instillingens verdi

 

Altså instillingen for max filstørrelse heter 'max_size' og har variablen '200'. Men hvordan får jeg PHP til å automatisk hente ut ALLE instillingene fra databasen og putte de inn i variabler?

 

F.eks. at max filstørrelse blir: $max_size = 200;

 

:hmm:

Lenke til kommentar
Videoannonse
Annonse

Tror nok det er mulig, php delen vet jeg er fult mulig og ikke så veldig vanskelig heller (variable variabler er ganske sentralt da).

Men er ikke så god på sql som jeg skulle ønske, men regner med det er mulig og hente ut navn på rader og kolloner så du kan hente ut alt.

 

Men spørsmålet er jo hvorfor?

Skal du gjenskape phpmyadmin?

Lenke til kommentar

Jeg skal lage en del sider som krever en del innstillinger. Sånn som max filstørrelse, tillatte filtyper osv. Jeg skal lage mitt eget lille kontrollpannel der jeg kan endre innstillingene, og det er da enklest hvis de ligger i en database.

 

Jeg prøvde på dette, men det gikk ikke:

<?php
function getInnstilling($innstilling)
{
$innstilling_query = mysql_query("SELECT * FROM innstillinger WHERE navn='$innstilling'");
$innstilling_array = mysql_fetch_array($innstilling_query);

$innstilling_verdi = $instilling_array['verdi'];
}

getInnstilling("max_size");
print("DETTE ER MAX FILSTØRRELSE: ".$innstilling_verdi);
?>

 

Jeg kan også legge inn innstillingene i en 'config.php' fil, for det virker som det i det hele tatt er en dum ide :)

Endret av simenss
Lenke til kommentar

Findus: Problemet slik eg ser det, er at korleis skal php kunne gje det samme navnet til variablen som er i mysql. Iallefall forstår ikkje eg korleis det skal gå.

 

Sjølv bruker eg denne for å gjør det letter å oppdatere scripta seinere:

 

//Adding control panel allowed to sessions
$allowedtemp = array();
$allowedtemp = explode("#", $buffer['cpallowed']);

$allowed_count = count($allowedtemp);	

for($nr=0; $nr < $allowed_count; $nr++)
{
$_SESSION['login']['cpnr'.$nr .''] = $allowedtemp[$nr];
}

$buffer['cpallowed'] = eit felt i databasen som inneheld alle settingene. Feltet er lagret som text (eg veit dette er ikkje så bra for performanse), slik at eg kan legge til nye verdier kva tid som helst. Verdiene er lagret med # mellom kvar verdi.

 

Deretter lages dei inn til ein verdi etter kva nr i rekken dei er. Sjølvsagt må du holde oversikt over kva setting verdiene er då.

 

EDIT:

Må lære meg å slutte å opne eit vindu og fortsette og browse ei stund før eg svarer :D

 

function getInnstilling($innstilling)
{
$innstilling_query = mysql_query("SELECT * FROM innstillinger WHERE navn='$innstilling'");
$innstilling_array = mysql_fetch_array($innstilling_query);

return $instilling_array[$innstilling];
}

print "DETTE ER MAX FILSTØRRELSE: ".getInnstilling("max_size");

 

Burde fungere, dette er ikkje kva eg ville kalt ein heilautomatisk funksjon då.

Endret av The Red Devil
Lenke til kommentar

Hvis du heller legger alt i en rad med en hel haug forskjellige kolonner, kan du lett og fint kjøre følgende spørring:

 

SELECT * FROM tabellnavn;

 

$spørring = mysql_query("SELECT * FROM tabellnavn");
$fisk = mysql_fetch_object($spørring);

echo $fisk->max_size;
echo $fisk->total_visits;
...

 

 

EDIT:

 

Jeg kan også legge inn innstillingene i en 'config.php' fil, for det virker som det i det hele tatt er en dum ide smile.gif

 

Nei, det er ikke en god ide, siden du ikke kan permanent endre innstillingene uten å hardkode endringene inn i filen med f.eks. fwrite().

Endret av jorgis
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...