PHP aus Mysql ausführen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • PHP aus Mysql ausführen

    Hallo!

    Ich will alles von meiner HP in mysql tabellen drin haben...
    einfache sachen wie texte sind leicht auszugeben... einfache aus der tabelle den eintrag raussuchen und mit echo ausgeben...

    aber ich hab in meiner tabelle dieses stehen:
    Code:
    page | inhalt
    
    4    |  for($a=0;$a<=2;$a++) echo $a;
    aber er schreibt nicht 012 hin sonder:
    Code:
    for(=0;<=2;++) echo ;
    mit eval funktioniert das auch nicht...
    (ich habe das so probiert):
    Code:
    $inhalt = mysql_fetch_array(mysql_query("SELECT * FROM daten WHERE page=$_GET[p]"));    #<- code ist korrekt
    
    eval("$blabla = \"$inhalt[inhalt]\";"); echo $blabla;
    kann mir jemand helfen???

    p.s.: ist das eh das richtige forum oder hätte ich das ins mysql forum schreiben sollen??
    [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

  • #2
    eval() is dein freund
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      Original geschrieben von tomstig
      mit eval funktioniert das auch nicht...
      (ich habe das so probiert): ...

      Original geschrieben von MelloPie
      eval() is dein freund
      Wer lesen kann, ist besser dran.

      Output-Buffering hilft da weiter:
      ob_start();
      eval($inhalt[inhalt]);
      $blabla = ob_get_contents();
      ob_end_clean();
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar


      • #4
        @mellopie: jaja... das gut eval()... aber wie?? ich hab es ja schon damit probiert...
        [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

        Kommentar


        • #5
          Hallo,

          wenn man den Inhalt Deines Tabellenfeldes erstmal aufbereitet:

          $var ="for(\$a=0;\$a<=2;\$a++) echo \$a;";

          eval($var);

          dann funzt es.

          Würde bedeuten, das Du in deiner Db die alle Steuerzeichen ($ oder ") mit einem \ beginnen musst.


          Gruß

          Peacie
          Zuletzt geändert von ; 24.11.2003, 10:17.

          Kommentar


          • #6
            Funktioniert nicht...
            Warum nicht?
            Deshalb: In meiner mysql-Tabelle schreibe ich folgendes hinein:
            PHP-Code:
            $var ="for(\$a=0;\$a<=2;\$a++) echo \$a;"
            in meinem php-script schreibe ich folgendes:
            PHP-Code:
                 $inhalt_sql "SELECT * FROM daten WHERE page=$p";
                 
            $inhalt_query mysql_query($inhalt_sql);
                 
            $inhalt mysql_fetch_array($inhalt_query);
                 eval(
            $var); 
            da gibt es jetzt 2 Fehler:
            a.) Er kennt die Variable $var noch gar nicht
            b.) Es fehlt der Output(Ausgabe[das echo ""])

            another try please...

            p.s.:@peacie: für einen newbie gar nicht schlecht... normalerweise kommt von denen immer die meldung: "das problem ist ich habe null ahnung von php" o.ä.
            Zuletzt geändert von tomstig; 24.11.2003, 13:10.
            [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

            Kommentar


            • #7
              das php $var noch nicht kennt is doch kein problem

              du hast den text ja in $inhalt['name der spalte'], also solltest du auch das durch eval jagen (und evtl. vorher mal ausgeben lassen)
              Ich denke, also bin ich. - Einige sind trotzdem...

              Kommentar


              • #8
                Hallo,

                nochmal der "Newbie"

                nun, eventuell hab ich mich falsch ausgedrückt.
                Natürlich war die $var nur als Platzhalter für deine Scriptarbeit gedacht....

                Mit dem Inhalt deines Textfeldes in der DB hat das aber nix zu tun.

                Beispiel:

                Dein DB Inhalt
                Code:
                page | inhalt
                
                4    |  for($a=0;$a<=2;$a++) echo $a;
                Mein DB Inhalt
                Code:
                page | inhalt
                
                4    |  for(\$a=0;\$a<=2;\$a++) echo \$a;
                Dann gehts eigentlich wie folgt weiter:
                Code:
                $Inhalt = mysql_fetch_array(mysql_query("SELECT * FROM daten WHERE page=$_GET[p]"));    #<- code ist korrekt
                also ist der Inhalt der Variable $Inhalt dann:

                Code:
                $Inhalt="for(\$a=0;\$a<=2;\$a++) echo \$a;"

                Code:
                eval("$Inhalt");
                Führt dann den Befehl aus.....

                In meinem Beispiel vorher hatte ich mir nur Tipparbeit gespart und die For Schleife in die Variable $Var gelegt.
                Sorry, meine Faulheit wieder..... *g*

                Den echo Befehl kannst du dir sparen, eval führt den Befehl unmittelbar aus, den es gerade geparst hat.

                Bitte korrigiert mich, wenn ich da falsch liege.....

                Bis dahin,

                peacie

                Sorry, schnell Tippern ist net mein Dig....
                Korrigierte Fassung *G*
                Zuletzt geändert von ; 24.11.2003, 14:36.

                Kommentar


                • #9
                  very strange....

                  also dein idee mit $var, ließ sich vorher so ausführen:
                  db:
                  Code:
                  page | inhalt 
                  4    |    $var = "for(\$a=0;\$a<=2;\$a++) echo \$a;";
                  code:
                  PHP-Code:
                       $inhalt_sql "SELECT * FROM daten WHERE page=$p";
                       
                  $inhalt_query mysql_query($inhalt_sql);
                       
                  $inhalt mysql_fetch_array($inhalt_query);
                       
                  mysql_close();
                       eval(
                  "$inhalt[inhalt]");
                       eval(
                  $var); 
                  dann funktioniert es

                  vielen dank "newbie" (dein posts ähneln dem eines admins/mode )

                  mfg thomas

                  @happy: nicht traurig sein... dein post war auch toll...
                  [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                  Kommentar


                  • #10
                    Hallo,

                    danke für das Kompliment @Tomstig.

                    Ich denke, da es so funktioniert, kannst Du Dir noch einen Zwischenschritt ersparen

                    In der DB nur noch:
                    Code:
                    for(\$a=0;\$a<=2;\$a++) echo \$a;
                    und anschließend nur noch Dein
                    Code:
                    eval("$inhalt[inhalt]");
                    sonst parst er erst den $inhalt[inhalt] ind die Variable $var und anschließend parst er die variable var erneut.

                    Des muss ja net sein

                    Ich hatte das gleiche Problem wie du mit eval.
                    Ich wollte mit möglichst wenig Zelen ein einfaches Templatesystem bauen. (Hat glaub ich weniger als 10 Zeilen).
                    Wenn ich mal Die Zeit finde werd ich das mal Posten.

                    Bis dahin weiterhin gutes gelingen.

                    Bis denne

                    Peacie

                    Kommentar


                    • #11
                      Original geschrieben von Titus
                      Wer lesen kann, ist besser dran.

                      Output-Buffering hilft da weiter:
                      ob_start();
                      eval($inhalt[inhalt]);
                      $blabla = ob_get_contents();
                      ob_end_clean();
                      Könnte schwören da stand nichts von eval...
                      das Änderungsdatum is auch nicht wirklich sinnig... :-)
                      Aber kann auch sein dass ich nicht richtig gelesen habe.
                      Beantworte nie Threads mit mehr als 15 followups...
                      Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

                      Kommentar


                      • #12
                        jetzt klappt -gott sei dank- alles...


                        zuerst habe ich probiert, ob er mit eval() auch ein ganz normales wort ausgibt (ohne echo), aber das geht jetzt endlich mit einer ganz simplen if abfrage...

                        mfg thomas
                        [color=black] Important: alt bei <img> ist immer erforderlich · Strings richtig trennen/verbinden · Kiddie-Code hat keine Chance[/color]

                        Kommentar


                        • #13
                          Jungs ihr seid der Hit,
                          habt mir echt geholfen.

                          Aber was mache ich wenn kein PHP Code drinn ist?
                          Zuletzt geändert von Imion; 17.01.2004, 10:59.

                          Kommentar


                          • #14
                            mal ne allgemeine Frage: welchen Vorteil hat es den PHP-Code in einer Datenbank zu speichern? Das selektieren kostet Zeit und Resourcen und das editieren ist ein Krampf. Ich seh nicht ganz den Sinn.

                            Rocco

                            Kommentar


                            • #15
                              Original geschrieben von Rocco
                              Ich seh nicht ganz den Sinn.
                              OffTopic:
                              bei fragen von tomstig verkneifen wir uns die sinnfrage inzwischen meistens *g*
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X