Klassen - Neuling

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

  • Klassen - Neuling

    Ich schlag mich zur Zeit mit Klassen herum und Schritt für Schritt komm ich auch weiter, nur jetzt steck ich wieder fest:

    PHP-Code:
    <?
    class eintraege
        {

         var $name;

         var $alter;


         function verbindung()
            {
             mysql_connect('xxx', 'xxx', 'xxx');
             mysql_select_db('xxx');
            }


         function zuweisen($sql, $ergebnis, $row)

            {

             $sql = "select * from gb_eintraege";

             $ergebnis = mysql_query($sql);

             while( $row = mysql_fetch_object($ergebnis) )
                {

                 $this->name[] = $row->name;
                 $this->alter[] = $row->alter;

                }

            }


         function parsen($t, $t_temptest)

            {

             $t = new KTemplate('index.tpl');

             $t_temptest = $t->fetchBlock('eintraege');

             for( $i=0; $i<count($datums); $i++ )

                {


                 $t_temptest->assign('name', $this->name[$i]);

                 $t_temptest->assign('alter', $this->alter[$i]);

                 $t_temptest->reset();

                }

            $t->out();

            }


        }
    ?>

    (aufs Wesentliche gekürzt)


    PHP-Code:
    require_once('class_ktemplate.inc.php');

    require_once(
    'class_system.php');


    $neu = new eintraege;

    $neu->verbindung();

    $neu->zuweisen('''''');

    $neu->parsen('',''); 

    Sinn des Ganzen ist es, die Einträge eines Gästebuchs (hier hab ich die Daten auf Name und Alter reduziert) über Templates (KTemplate) auszugeben.

    Leider wird die ganze Schleife nicht interpretiert und es steht nur einmal "{eintraege}" an der Stelle, wo sonst der ganze Rest hinsollte.

    Wo liegt denn der Fehler? Kann mir vorstellen, dass ich irgendwas mit den Klassen falsch verstanden habe...

    Vielen Dank schonmal!

  • #2
    $datums dürfte in der fpr Schleife nicht definiert sein
    TBT

    Die zwei wichtigsten Regeln für eine berufliche Karriere:
    1. Verrate niemals alles was du weißt!


    PHP 2 AllPatrizier II Browsergame

    Kommentar


    • #3
      Jo, danke, hat geholfen - wenn auch nicht direkt (hatte $datums natürlich schon eingebaut, aber aus Faulheit zurerst mal keine Werte zugewiesen).

      Sorry, wenn ich ein bisschen floode, aber ich tüftel jetzt schon wieder zwei Tage an ner Funktion:

      PHP-Code:
      class eintrag

          
      {

           var 
      $datum;

           var 
      $name;

           var 
      $alter;

           var 
      $email;

           var 
      $homepage;

           var 
      $ort;

           var 
      $eintrag;

           var 
      $kommentar;

           var 
      $fehler = array();


           function 
      eintragen($zeit$name$alter$email$homepage$ort$eintrag$kommentar)

              {

               
      //$this->check($name, $nachricht); hab ich mal rausgenommen, aber ohne funktionierts auch nicht

               
      $sql "insert into gb_beitraege values='$zeit$name$alter$email$homepage$eintrag$ort$kommentar '";
               
      mysql_query($sql);

              }


           function 
      check($name$nachricht)

              {

               if( !
      $name $this->fehler 'Kein Name eingegeben';

               if( !
      $nachricht $this->fehler 'Kein Beitrag eingegeben';

               if( 
      $this->fehler ) die('Fehler');

              }

          } 



      PHP-Code:
      if( $eintrag )

          {

           
      $eintrag = new eintrag;

           
      $eintrag->eintragentime(), $_POST['name'], $_POST['alter'], $_POST['email'], $_POST['homepage'], $_POST['ort'], $_POST['eintrag'], 'x' );

           echo 
      $_POST['alter'];

          } 

      Das Problem liegt bei der Funktion eintragen. Ich weise Werte zu (über $_POST, sie werden auf der index auch angezeigt) aber wenn ich versuche sie in der Funktion mit echo ausgeben zu lassen funktionierts nicht (geschweige denn in die db eintragen).

      PS.: Muss ich denn alle Vars definieren, die ich irgendwo verwende?

      Kommentar


      • #4
        ich weiss nicht, was du hast ... wenn du mal reale werte in den aufruf setzt,
        funktioniert dein code ... gegencheck:
        PHP-Code:
        class eintrag
        {
        var 
        $fehler = array();

        function 
        eintragen($zeit$name$alter$email$homepage$ort$eintrag$kommentar)
        {
            
        $this->check($name$kommentar); // hab ich mal rausgenommen, aber ohne funktionierts auch nicht
            
        return $sql "insert into gb_beitraege values='$zeit$name$alter$email$homepage$eintrag$ort$kommentar '";
            
        //mysql_query($sql);
          
        }

          function 
        check($name$nachricht)
          {
            if( !
        $name )
                
        $this->fehler[] = 'Kein Name eingegeben';
            if( !
        $nachricht )
                
        $this->fehler[] = 'Kein Beitrag eingegeben';
            if( 
        count($this->fehler)>) die('Fehler =>'.implode('=>',$this->fehler));
           }
        }
        $eintrag = new eintrag;
        echo 
        $eintrag->eintragentime(), 'name''alter''email''homepage''ort''eintrag''' ); 
        Kissolino.com

        Kommentar

        Lädt...
        X