Avatar billede chris0905 Nybegynder
14. april 2011 - 20:10 Der er 9 kommentarer og
1 løsning

Hente CSS fra MySQL

Hej Eksperter!

Er der nogle der kan give mig et forslag (eller en guide) til hvordan man kan hente indholdet til en css-fil fra mysql?


Mvh.

Christoffer
Avatar billede tjens Nybegynder
14. april 2011 - 20:55 #1
Hvilket "server side scripting" sprog har du på din webserver?

F.eks PHP?
Avatar billede spaceus Nybegynder
14. april 2011 - 21:35 #2
læg den som en blob (eller er det oracle) og stream den ud (husk at gemme efter stream en blob sletter efter)
Avatar billede chris0905 Nybegynder
14. april 2011 - 21:55 #3
jeg kører PHP... og spaceus; jeg fatter ikke rigtig noget... så dygtig er jeg ikke...
Avatar billede Slettet bruger
14. april 2011 - 22:11 #4
Du kan åbne databasen i en almindelig php-fil, fx index.php, og heri oprette css-filen og fylde databaseindholdet deri med et script til at skrive til filer.
Avatar billede tjens Nybegynder
14. april 2011 - 22:21 #5
Jeg går ud fra at du ved hvordan du læser fra din database til en PHP variabel.

I html linker du til fil på normal vis, bortset fra at den skal hedde .php:
<link rel="stylesheet" type="text/css" href="myStyle.php" />

I filen myStyle.php har du så kun følgende:
<?php
header('Content-type: text/css');
Åben database og læs css
echo $cssString;
?>
Avatar billede chris0905 Nybegynder
15. april 2011 - 14:49 #6
kan du give et exempel på "læs css"???
Avatar billede tjens Nybegynder
15. april 2011 - 17:15 #7
#6 Nej, SQL delen kan vi ikke rigtig hjælpe med, da du ikke har vist hvordan CSS er gemt i databasen.
Er det f.eks. en fil med mange linier med løbenummer som selvstændige records, så kan du echo'e hver enkelt linie.
Eller hvis det er gemt som blob er det noget andet der skal til.

Men det er i hvert fald helt almindelig kode, ganske som du plejer at tilgå din database fra PHP.

Tricket er at PHP-scriptet starter med at sætte headeren, og derefter ikke sender andet end CSS som alm. tekst til browseren.


PS: Hvorfor vil du lade din html linke til css, ikke bare er en tekstfil på serveren?
Det koster jo meget mere regnekraft, hver gang den skal hentes ud via sql.
Avatar billede chris0905 Nybegynder
15. april 2011 - 18:30 #8
Tak for dit svar! der er lige et par ting...

Tabellen er to oplysninger; id og style (css filens indhold)

jeg forstår ikke "blob"... jeg er stødt på det et par gange... hvad er det???

Når du siger "ganske som du plejer at tilgå din database fra PHP", kunne koden så se sådan her ud:

<?php
header('Content-type: text/css');
include('connect.php');
$query = mysql_query("SELECT * FROM style WHERE id = '1'");
$cssString = mysql_fetch_assoc($query);
print $sidedata[style];
//Åben database og læs css
echo $cssString;
?>

og sidst; jeg kører den ikke på en tekstfil, da jeg forsøger at lave et lille cms...

På forhånd tak for hjælpen!
Avatar billede tjens Nybegynder
15. april 2011 - 18:41 #9
De 2 sidste linier udgår vel?
Og så forstår jeg ikke lige hvor variablen $sidedata kommer fra?
Og skal [style] ikke være ['style']?

Men som skitse ser det OK ud, og du kan se at det bliver ganske kort.

Og scriptet er let at teste, da du bare kan kalde det direkte fra en browser, og se om du modtager stylen som ren tekst.
Avatar billede chris0905 Nybegynder
15. april 2011 - 21:25 #10
Takker og 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