Ankündigung

Einklappen
Keine Ankündigung bisher.

Klassen als Bausteine richtig verwenden

Einklappen

Neue Werbung 2019

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

  • Klassen als Bausteine richtig verwenden

    Moin Leute, ich arbeite dezeitig mit Klassen und möchte diese Klassen, wie sie gedacht sind, als Bausteine benutzen. Nun zu meinem Problem. Ich möchte eine Tabelle aus der SQL Datenbank ausgeben und sie gleichzeit mit Checkboxen versehen, sofern ich es ohne Klassen machen, ist dies kein Problem. Bei der Verwendung meiner Klassen entsteht folgendes:

    Ich bekomme 2 folgende Fehlermeldung:

    (1) Trying to get property of non-object in /Applications/XAMPP/xamppfiles/htdocs/Datenbanken/testa.php on line 13 // und in line 38
    (2)
    Undefined variable: row in /Applications/XAMPP/xamppfiles/htdocs/Datenbanken/testa.php on line 13 // und in line 38


    Meine Frage bezieht sich jetzt darauf, wie ich die Variable $row richtig definiere, so dass mir die Tabelle richtig ausgeben wird.
    Ich weiß, diesbezüglich das variablen aus unterschiedlichen Funktionen mit $this-> übergeben werden müssen, kann dies aber nicht genau umsetzen, so dass das Skript funktioniert.

    Und wieso Fehler (1) auftaucht. Ich wäre euch sehr verbunden, wenn ihr mich um meine Fehler aufklärt.

    PHP-Code:
    <?php            class Abfrage
                    
    {
                        var 
    $sql;
                        var 
    $TabelleAbfragen;
                        var 
    $CheckboxAbfrage;

                        var 
    $CheckboxName;
                        var 
    $statement;
                        var 
    $row;

                public function 
    CheckboxAbfrage()
                    {
                        echo 
    "<input type='checkbox' name=$this->CheckboxName value=$row->Nr>";           //Line 13 
                    
    }

                public function 
    TabelleAbfrage()
                    {
                             while(
    $row=$this->statement->fetch())
                                 {
                                     echo 
    $this->TabelleAbfragen;
                                     echo 
    $this->CheckboxAbfrage();        
                                 }
                    }

                    public    function 
    SQL()
                        {    
                            include(
    'Konfig.php');
                            
    $sql=$this->sql;
                            
    $this->statement    $pdo->prepare($sql);    
                            
    $this->statement->execute() or die(include('FehlerMeldung'));        
                            
    $this->TabelleAbfrage();                    
                        }
                    }    

    $object= new Abfrage;
    $object->CheckboxAbfrage 'CheckboxName[]';
    $object->sql "Select * From Land";
    $object->TabelleAbfragen"$row->Nr";     //line 38                          
    $object->SQL();

  • #2
    (1) Trying to get property of non-object in /Applications/XAMPP/xamppfiles/htdocs/Datenbanken/testa.php on line 13 // und in line 38
    (2)
    Undefined variable: row in /Applications/XAMPP/xamppfiles/htdocs/Datenbanken/testa.php on line 13 // und in line 38
    Sorry, aber diese Fehlermeldung nicht zu verstehen ist absolut nicht fortgeschritten. Du hast an der Stelle kein Objekt.

    Die Klasse - oder was immer das sein soll - auch nicht. Du solltest diese nochmals überdenken, das Konzept ist so falsch. Nur weil man irgendwelchen Code in eine Klasse presst hat man noch lange kein "OOP". Das was du da machst hat eigentlich so nur Nachteile.

    MOD: Verschoben von PHP-Fortgeschritten
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Wo hast du diesen Steinzeit PHP 4 Code ausgegraben? Ich würde die entsorgen und komplett neu schreiben.

      Kommentar

      Lädt...
      X