Waardes uit MySQL Database

  • Ik ben bezig met een CMS waarbij ik waardes uit een database wil halen. Die waardes wil ik laten zien in een CSS-bestand. In het CSS-bestand wil ik de achtergrondkleur ophalen vanuit de database alleen die pakt hij niet omdat er iets mis is met een functie. Zou iemand mij kunnen helpen?



    Edit door J.Rijdes: Code in de [code] tags gezet.

  • Ten eerste welkom op ICTscripters!


    Wat ik in dit soort gevallen doe is de stijl gewoon meegeven aan de div.


    Dus in jouw geval:


    PHP
    <html>
    <head>
      <title></title>
      <link rel="stylesheet" type="text/css" href="style/style.php">	
    </head>
    <body style="background-color: <?php echo $result ?>;">
    JE TEKST
    </body>
    </html>
  • Beste Rick,


    Ik liep een jaar geleden tegen hetzelfde probleem, ik had het opgelost door mijn stylesheet in een PHP pagina te maken.


    Dan heb je bijvoorbeeld dit:


    Styles.php


    Dit is even een klein stukje van mijn CSS code uit mijn eigen CMS.



    Hopelijk heb je er iets aan!



    Corné

  • Wat @J.Rijdes zegt klopt. Je kan in een CSS bestand geen variabelen zetten. Een CSS bestand kan alleen CSS lezen en geen PHP. Wel zou de style tags kunnen gebruiken in een PHP bestand. Dit zou er als volgt uit kunnen zien.



    Een andere optie (die ik persoonlijk beter vind) is voor elke optie een andere Layout (CSS bestand) in laden. In jouw geval niet helemaal handig, omdat je maar een CSS attribute veranderd. Dit vind ik persoonlijk wel beter, omdat het hele punt van semantisch HTML en CSS is om de styling en de structuur uit elkaar te houden. Daarom is het voor mijn onlogisch om styling direct in een HTML tag te plaatsen. Daarom houd ik mijn stijl en mijn structuur altijd uit elkaar. Toch zou je het gewoon kunnen doen.

  • Omdat ik @RiCKDEVRiESS persoonlijk ken weet ik toevallig dat het probleem is dat hij niks uit de database krijgt.


    Kan je proberen om het resultaat van de twee variables hier neer te zetten.


    Dat doe je door in style.php onder $result dit neer te zetten:


    PHP
    <?php // deze tag er niet neer zetten (deze gebruik ik om de PHP syntax te krijgen)
    var_dump($query);
    echo "<br>";
    var_dump($result);


    Het probleem wat jij hebt is dat je $result weer geeft. Dit is een array waar alle variabelen in staan. Als je $result['kleur'] gebruikt ('kleur' is het veld met de kleur uit de database, als deze zo heet) dan moet alles goed werken.

  • Ik lees hier een hoop flauwekul. Dit hoeft helemaal niet inline en kan prima middels een losse stylesheet die in wezen een PHP-bestand is.


    index.htm


    style.php:

    PHP
    <?php
    header('Content-Type: text/css; charset=UTF-8');
    
    
    $watJijWilt = '#ccccff';
    ?>
    body { background-color: <?php echo $watJijWilt; ?>; }


    GL HF.

  • @FangorN Dit is precies wat Rick al had gedaan. Het enige wat hij verkeerd had gedaan was:


    Code
    $query = mysqli_query($conn, "SELECT `kleur` FROM `achtergrondkleur` WHERE id = 1");
    
    
    	$result = mysqli_fetch_array($query)
    
    
    echo $result;


    Hij wilde een waarde uit de query halen, maar was vergeten een waarde aan te geven. Na de reactie van Dees durf ik te wedden dat zijn probleem was opgelost.



    Corné

  • Dat geloof ik best.


    Maar inline CSS lijkt mij iets wat je moet vermijden. Het vertroebelt de leesbaarheid van je uiteindelijke document.


    Als je hier ook nog eens PHP doorheen gaat fietsen is dat dé manier om je code onleesbaar / niet onderhoudbaar te maken.


    Daarom zou ik die oplossingsrichting niet kiezen.


    Tenzij je echt niet anders kan.


    Een apart CSS-bestand heeft voordelen boven al die inline meuk. Waarvan leesbaarheid niet de minste is. Stel dat je iets moet debuggen, dan moet je eerst nog door die heg heen.


    *brr*


    Daarnaast, simpelweg antwoord geven op een vraag is ook niet altijd de beste "oplossing". Daarbij mag je best zelf een waardeoordeel vellen waarbij je kijkt of de gekozen aanpak wel de goede is.

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!