[PHP] HTML / PHP code aus MySQL Datenbank?

Dieses Thema im Forum "Webentwicklung" wurde erstellt von Sith-Urs, 9. April 2009 .

  1. 9. April 2009
    HTML / PHP code aus MySQL Datenbank?

    Hallo,
    ich arbeite gerade ein einer kleinen Seite, dafür hab ich mich ein wenig in PHP und MySQL eingelesen. Stecke gerade ein wenig fest, weil ich mich nicht sicher bin ob mein vorhaben sinnvoll is.

    Mein vorhaben:

    Ich möchte eine Seite erstellen mit einem Admin-Bereich.
    Im Admin-Bereich soll man mittels Formularen den kompletten seiten Inhalt frei gestalten können. Das soll heißen man soll ein eigenes Menü mit Unterkategorien erstellen können und die dazugehörigen Seiteninhalte gestalten können.

    das heisst also ich habe eine Index.php in der das Menü Includet wird. Da das Menü ja flexibel sein soll hab ich dafür eine extra php Datei angelegt (navi.php).
    In der navi.php werden dann die relevanten Daten für die Navigation aus der Datenbank ausgelesen. Das klappt auch alles soweit ganz gut.

    So aber der Inhalt berreich der macht mir schwierigkeiten. Ich verwende dafür im Admin Bereich den fckeditor, man hat dann halt die Möglichkeit die Inhalte der Seiten ähnlich wie in Word zu gestalten, und das ist auch mein Ziel... . So jetzt wird also mittels des fckeditor's die Seite erstellt und ich schmeiß den ganzen inhalt in meine MySQL Datenbank. Da ich ja keine neuen PHP Dateien erstellen kann.
    Ab jetzt fängt es an ein wenig komisch zu werden. Also um die Seite dann wieder anzuzeigen hät ich mir gedacht, lad ich den Inhalt einfach in eine Variabel und gib diese mit echo aus... klappt aber nciht bzw. nur halb.

    Naja mein zweiter lösungsansatz ist, ich hab EINE Datei die heisst Inhalt.txt .
    Wenn ich jetzt in meiner Navigation auf bsp. Affe drücke, dann wird der entsprechende Inhalt in die Inhalt.txt geschrieben diese wird dann mittels include eingebunden und anschließend wieder geleert.
    Und das klappt , aber ich frag mich mach das denn Sinn? Kann es zu problemen führen? oder kann ich in ruhe weiter machen?
     
  2. 9. April 2009
    AW: HTML / PHP code aus MySQL Datenbank?

    - Klar kann man das.

    Warum klappt's nicht, was meinst du, inwiefern halb.

    -> add:
    PHP:
    <? php error_reporting ( E_ALL | E_STRICT );  ?>
    hier posten, inklusive deinem PHP code. k.
     
  3. 9. April 2009
    AW: HTML / PHP code aus MySQL Datenbank?

    hi, danke für die schnelle reaktion:

    Wie kann ich denn neue Dateien erstellen? würd mir einiges an ärger ersparren.

    es klappt nur halb weil mit echo blödsinn bei rum kommt :

    navi.php
    PHP:
    <? php error_reporting ( E_ALL | E_STRICT );  ?> 
    <?php
    include  "connect.inc" ;
    $anzahlkat  "SELECT umenu FROM menu" ;
    $ergebnis  mysql_query ( $anzahlkat );
    $anzahl  0 ;
    $hauptkat  = array();
    $geschrieben  ;
     while (
    $row  mysql_fetch_object ( $ergebnis )) {
        if (
    $row -> umenu  ==  0 ){
            
    $hauptkat [] =  $row -> umenu  ;
            
            }
      }
      echo 
    "<br>" ;
      
      
    $anzahl  count ( $hauptkat ); 
      echo 
    "Es gibt  { $anzahl }  Hauptkategorien<br>" ;
      
    $i = 0 ;
      
    extract  ( $_GET EXTR_OVERWRITE );
      while (
    $i  <=  $anzahl  ) {
      
    $anzahlkat  "SELECT menuid,umenu,name,inhalt,id FROM menu ORDER by umenu,usort" ;
      
    $ergebnis  mysql_query ( $anzahlkat );

      while ( 
    $row  mysql_fetch_object ( $ergebnis )) 
      {
         if(
    $row -> umenu  ==  &&  $row -> menuid  ==  $i )
            echo 
    "<b><a href=\"index1.php?foo= { $row -> id } &unter= { $row -> menuid } \"> { $row -> name } </b></a><br>" ;
         if(
    $row -> umenu  ==  &&  $row -> menuid  ==  $i  &&  $row -> menuid  ==  $unter )
            echo 
    "&nbsp;&nbsp;&nbsp;<a href=\"index1.php?foo= { $row -> id } &unter= { $row -> menuid } \"> { $row -> name } </a><br>" ;
      }
      
    $i ++;
      }
        
        
        if(isset(
    $foo ))
        {
            
    $abfrage  "SELECT id,inhalt FROM menu WHERE id =  $foo " ;
            
    $ergebnis  mysql_query ( $abfrage );
            while(
    $row  mysql_fetch_object ( $ergebnis ))
                {
                    
    $inhalt  html_entity_decode ( $row -> inhalt );

        }

        }

    ?>






    index.php

    PHP:
    <? php error_reporting ( E_ALL | E_STRICT );  ?> 
    <link rel="stylesheet" type="text/css" href="style/style.css" />
    <div id="kopf">
    titel
    </div>

    <div id="links">
    <?php
    include  "navi\index1.php" ;
    ?>
    </div>
    <div id="inhalt">
        <?php
            
    echo  $inhalt ;
            
    ?>
            </div>  
     
    <div id="rechts">
    Rechtes Menü
    </div>


    bsp. für den Inhalt in der Datenbank
    Code:
    <html>
    <head>
    <title>Tabellen erzeugen</title>
    </head>
    <body>
    
    
    
    Neue Unterkategorie hinzufuegen<br>
    <br>
     <?php
    include "connect.inc";
    $abfrage = "SELECT name,inhalt,id,umenu FROM menu";
    $ergebnis = mysql_query($abfrage);
    
     $themen = array();
     $id = array();
    while ($row = mysql_fetch_object($ergebnis)) {
     // echo "<option><b>$row->id</b> &nbsp;&nbsp; $row->ueberschrift</option>";
     
     if($row->umenu == 0){
     $themen[]= $row->name;
     $id[]= $row->id;
     }
    }
    echo "es gibt ";
    echo count($themen);
    echo " Kategorien<br>";
    
    if (count($themen) == 0)
     echo "<br><b>Bitte erst eine Hauptkategorie erstellen!</b>";
     else{
     ?> 
    
    
     <form action="ukaterstellt.php" method="post" target="_blank">
    
     
     <b>Welcher Kategorie m&uuml;chten sie eine Unterkategorie hinzuf&uuml;gen?</b> <br>
     <select name="thema" size=10>
     <?php
    for ($i=0;$i<count($themen);$i++)
    {
     echo "<option value='$id[$i]'>$themen[$i]</option>";
    }
     ?>
     </select>
     <br><br>
     <b>Name der Kategorie</b> 
    <input name="name" size="120"><br><br>
    <b>Inhalt</b>
     <?php
    include_once("fckeditor/fckeditor.php") ;
    $oFCKeditor = new FCKeditor('inhalt') ;
    $oFCKeditor->BasePath = 'fckeditor/' ;
    $oFCKeditor->Value = '<p>hier Inhalt eintragen</p>' ;
    $oFCKeditor->Height = '500';
    $oFCKeditor->Create() ;
    ?>
    
     <br>
     <input type="submit" value="Submit">
     </form>
    <?php } ?>
    </body>
    </html>
    
    

    Das kommt dann dabei raus:
    also das ini der mittleren Spalte

    http://img246.imageshack.us/img246/5111/falsch.jpg


    Aber eigentlich sollte die mittlere Spalte so aussehen:

    http://img232.imageshack.us/img232/8531/richtig.jpg
     
  4. 9. April 2009
    AW: HTML / PHP code aus MySQL Datenbank?

    PHP code musst du via eval() erst durch'n Parser jagen, wenn du ihn so ausgibst ist es klar dass er nicht mehr "beachtet" wird.
    Wie du neue PHP Dateien anlegst?
    PHP: fopen - Manual
    PHP: fwrite - Manual
    PHP: fread - Manual
    PHP: fclose - Manual

    Allgemein alle file-Funktionen, wenn du bei fopen bist wirste eig auf alle anderen verlinkt, entweder im Laufe des Artikels oder Links in der Sidebar.
    Ansonsten:
    PHP: file_put_contents - Manual
    PHP: file_get_contents - Manual


    file_put_contents ist erst ab PHP5 vorhanden, weiß ja nich welche Version du am Rennen hast.
     
  5. 9. April 2009
    AW: HTML / PHP code aus MySQL Datenbank?

    PHP:
    <? php
    $phpCode 
    '<?php print "hallo"; ?>' ;
    file_put_contents (( $tmpName  uniqID () .  '.php' ),  $phpCode );
    include 
    $tmpName ;
    unlink ( $tmpName );
    print 
    " welt" ;

    //output: hallo welt
    ?>
    so gehts
     
  6. 9. April 2009
    AW: HTML / PHP code aus MySQL Datenbank?

    noch eine kleine frage und ich bin glücklich.

    Lokal läuft das jetzt wunderbar mit den Dateien erstellen , vielen dank dafür. Wenn die dateien aber aufn Webserver erstellt werden, gibts da probleme mit den Schreibrechten?
     
  7. 9. April 2009
    AW: HTML / PHP code aus MySQL Datenbank?

    Lass mich raten... local windows, online linux.
    Windows is ja so klug und hat keine Schreibrechte bei den Daten, genausowenig wie es case sensitive is :-|

    Setz chmod vom Ordner wo du die PHP Daten reinschreibn willst einfach auf 777.
     
  8. 11. April 2009
    AW: HTML / PHP code aus MySQL Datenbank?

    wunderbar bin jetzt fragenlos kann wegen mir closed werden
     
  9. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.