Men jag undrar om det skulle vara möjligt att göra så här istället:
settings:
namnpågrej
värdepågrej
också sedan spara in saker som, bakrundsfärg (namnet) och #000000 (värdet).... ?
Min fråga är bara hur jag kan plocka ut dessa så enkelt som möjligt...
Tidigare har jag då hämtat * från settings och kan ju då skriva ut typ $settings[bakgrundsfarg] men det går inte om jag gör som så som jag vill göra...
är det möjligt?
Ni får utsäkta att det blev så tjorvigt men jag tycker det är svårt att skriva om något man inte riktigt kan :)
--------------------------------------- tblUsers - Tabell med anv Info
---------------------------------------
userID // Unikt värde
Namn
Efternamn
Password
osv..
Jag var lite otydlig, det har ingenting med några medlemmar och inloggning och göra med ett egentillverkat CMS...
Det vore nämnligen enklare att lägga till nya settings på så vis (argumentera gärna emot så jag kanske kommer på andra tankar)....
Jag har sett att forumet punBB gör på det viset och det verkar onekligen smidigt.. :)
Att istället för i ditt exempel ha:
---------------------------------------
tblSettings - Tabell med Inställningar
---------------------------------------
userID // Unikt värde.
bgColor
fgColor
SgColor
---------------------------------------
Så har man så här:
---------------------------------------
tblSettings - Tabell med Inställningar
---------------------------------------
namnpåinställning
värdepåinställning
---------------------------------------
Så när man ska lägga till en ny inställning så lägger man inte till några fält i databasen utan bara en post....
Joo, men då blir man bunden till att byta hela css:er. Det är inte jag som ändrar dessa färger nämnligen. Utan en kompis som jag gjort detta CMS åt vill ha möjligheten att ändra färger på vissa saker på hemsidan. Så då har jag styrt det så att färgerna på de saker han ska kunna ändra på hämtar han från databasen.. :)
Men då vore det enklare att lägga till nya värden om jag skulle lyckas göra som jag beskrivit ovan. Men jag har inte lyckats ännu... :)
Vilket jag tycker låter rätt smidigt, om det är användar inställningar så måste man på något sätt ha med användarid i posten och då är det enklast att ha en post med inställningar per användare.
Hej, som jag förstår det du funderar på, så skulle det ju bli något i stil med
SELECT * FROM tabell WHERE namnpåinställning = 'bgcolor';
eller
SELECT värdepåinställning FROM tabell WHERE namnpåinställning = 'bgcolor';
och sedan så blir det ju att skriva ut $settings['värdepåinställning']
Och hämtar du ut alla inställningar på en gång så blir det ju en tvådimensionell array, så att du får loopa igenom den tills du hittar det värde du just där och då vill åt med typ:
foreach $settings as $setting
{
if ( $setting['namnpåinställning'] == "bgcolor" )
echo( $setting['värdepåinställning'] );
}
Men har du då många inställningar, så kommer detta att bli RUSKIGT ineffektivt, då du måste loopa igenom en massa innan du hittar rätt.
(Om du nu då inte kör specialicerade frågor mot databasen och bara får ut en endimensionell array, med bara ett namn och ett värde.)
tabell: settings
__
uniq_id,
group_id,
name,
value
__
Sen sparat inställningarna i en array sen till cookie/session för att slippa dra fram inställningarna varje uppdatering.
Anledning till group_id är att man via den skulle kunna styra hur ofta en viss grupp av inställningar bör hämtas,
eller i vilket sammanhang den ska fram osv.
lite psuedo:
Tabell:
uniq_id group_id name value
0 0 bgcolor #000000
1 0 font_color #FFFFFF
2 1 font_size 14
if (!session[settingsarray]) {
query("SELECT name, value FROM settings WHERE group_id=x");
$array = mysql_get_result_as_an_array(); // så att $array["bgcolor"] = #000000
set_session("settingsarray", $array);
}
$settings = session["settingsarray"]
?>
<body bgcolor="<?= $settings[bgcolor]; ?>"></body>