Ankündigung

Einklappen
Keine Ankündigung bisher.

Fatal error? Aber wo?

Einklappen

Neue Werbung 2019

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

  • Fatal error? Aber wo?

    Hallo,
    ich versuche schon seit 2 stunden den fehler zu finden aber irgendwie klappt es nicht :/

    Hier mein Programm(als erstes wird tab_kunde gestartet):
    PHP-Code:
    // ********** tab_kunde **********
    //******************************
    <table width="800" cellspacing="0" cellpadding="0">
      <tr>
        <td><center>[b]Kunden Übersichtstabelle[/b]</center></td>
      </tr>
      <tr>
        <td><center><table width="100%" cellspacing="2" cellpadding="2">
        <?php
        
    include ("dbaktionen/load_kunde.php");
        for (
    $zaehler 0$zaehler<=count($kunde); $zaehler++){
            echo 
    '<tr>
                    <td>'
    .$kunde[$zaehler]->getKundeID().'</td>
                    <td>'
    .$kunde[$zaehler]->getKundeName().'</td>
                    <td>'
    .$kunde[$zaehler]->getKundeFirma().'</td>
                    <td>'
    .$kunde[$zaehler]->getKundeStrasse().'</td>
                    <td>'
    .$kunde[$zaehler]->getKundePlz().'</td>
                    <td>'
    .$kunde[$zaehler]->getKundeOrt().'</td>
                  </tr>'
    ;
          }
        
    ?>
         </table></center></td>
      </tr>
    </table>





    // **********  load_kunde **********
    //*******************************
    <?php
    include ("dbconnect.php");
    include (
    "class_kunde.php");

    $zaehler 0;

    $loadAll mysql_query ("SELECT * FROM tab_Kunden") or die ("Ungültige Abfrage: " mysql_error());

    while (
    $row mysql_fetch_object($loadAll)){

        
    $kunde[$zaehler] = new Kunde();
        
    $kunde[$zaehler]->setKunde($row->kundenID$row->kundenName$row->kundenStrasse$row->kundenPostleitzahl$row->kundenOrt$row->kundenFirma);
        
        
    $zaehler++;
    }

    mysql_free_result($loadAll);
    ?>





    // **********  class_kunde *********
    //*******************************
    <?php
    class Kunde{
        var 
    $kun_ID;
        var 
    $kun_Name;
        var 
    $kun_Firma;
        var 
    $kun_Strasse;
        var 
    $kun_Plz;
        var 
    $kun_Ort;
        
        function 
    setKunde($set_kunID$set_kunName$set_kunFirma$set_kunStrasse$set_kunPlz$set_kunOrt){
            
    $this->$kun_ID        $set_kunID;
            
    $this->$kun_Name    $set_kunName;
            
    $this->$kun_Firma    $set_kunFirma;
            
    $this->$kun_Strasse    $set_kunStrasse;
            
    $this->$kun_Plz        $set_kunPlz;
            
    $this->$kun_Ort        $set_kunOrt;
        }
        
        
        function 
    getKundeID(){
            return 
    $this->$kun_ID;
        }
        function 
    getKundeName(){
            return 
    $this->$kun_Name;
        }
        function 
    getKundeFirma(){
            return 
    $this->$kun_Firma;
        }
        function 
    getKundeStrasse(){
            return 
    $this->$kun_Strasse;
        }
        function 
    getKundePlz(){
            return 
    $this->$kun_Plz;
        }
        function 
    getKundeOrt(){
            return 
    $this->$kun_Ort;
        }
    }
    ?>
    Es wird immer folgender fehler ausgegeben:
    Fatal error: Call to a member function on a non-object in /www/htdocs/v084932/_programm/tabellen/tab_kunde.php on line 15


  • #2
    $kunde[$zaehler] ist wohl kein Objekt...

    Kommentar


    • #3
      Das konnte ich auch der Fehlermeldung schon entnähmen, aber wieso nicht

      Kommentar


      • #4
        var_dump

        Kommentar


        • #5
          k, thx werde mal schauen

          Kommentar


          • #6
            Habe nun ausgeführt var_dump und folgendes bekommen:

            array(2) { [0]=> &object(kunde)(7) { ["kun_ID"]=> NULL ["kun_Name"]=> NULL ["kun_Firma"]=> NULL ["kun_Strasse"]=> NULL ["kun_Plz"]=> NULL ["kun_Ort"]=> NULL [""]=> string(5) "Keine" } [1]=> &object(kunde)(7) { ["kun_ID"]=> NULL ["kun_Name"]=> NULL ["kun_Firma"]=> NULL ["kun_Strasse"]=> NULL ["kun_Plz"]=> NULL ["kun_Ort"]=> NULL [""]=> string(12) "Keine Ahnung" } }

            hmm

            Kommentar


            • #7
              In deiner for-Schleife ist die Abbruch-Bedingung falsch.

              Kommentar


              • #8
                Entweder bin ich ganz blind oder komplett bescheuert o_0

                for ($zaehler = 0; $zaehler<=count($kunde); $zaehler++){
                }

                Was ist den daran falsch ?

                Kommentar


                • #9
                  Naja, wenn 1 element drin ist, gehst du von 0 bis 1.
                  Das sind 2 Elemente.
                  Eins davon gibts nicht.
                  **********************************
                  Nein, ich bin nicht die Signatur.
                  Ich putze hier nur.
                  **********************************

                  Kommentar


                  • #10
                    Asooo, jaaa, mann, hab nicht berücksichtigt das array von 0 anfängt o_0 danke, glaube hätte alleine nie den fehler gepeilt.

                    Kommentar


                    • #11
                      k, der Fatal error wurde nun beseitigt doch es funktioniert trotzdem noch nicht ganz.

                      array(2) { [0]=> &object(kunde)(7) { ["kun_ID"]=> NULL ["kun_Name"]=> NULL ["kun_Firma"]=> NULL ["kun_Strasse"]=> NULL ["kun_Plz"]=> NULL ["kun_Ort"]=> NULL [""]=> string(5) "Keine" } [1]=> &object(kunde)(7) { ["kun_ID"]=> NULL ["kun_Name"]=> NULL ["kun_Firma"]=> NULL ["kun_Strasse"]=> NULL ["kun_Plz"]=> NULL ["kun_Ort"]=> NULL [""]=> string(12) "Keine Ahnung" } }

                      Obwohl alle iegenschaften des objektes gesetzt werden ist nirgends wo was drinne z.B.: ["kun_Strasse"]=> NULL
                      Auserdem zeigt er in der Tabelle wo der einzelne eigenschaften anzeigen sollte nur die letzte Eigenschaft kun_Firma an.

                      Hier mal eine übersicht welche eigenschaften gesetzt werden von der datenbank aus und welche im endeffekt angezeigt werden.

                      Folgendes wird aus MySQL ausgelesen und in die Klasse eingefügt:
                      objekt[0]:
                      kundenID = 1
                      kundenName = Igor
                      kundenStrasse = Irgendwo
                      kundenPostleitzahl = 55468
                      kundenOrt = einOrt
                      kundenFirma = Keine

                      objekt[1]:
                      kundenID = 2
                      kundenName = Alex
                      kundenStrasse = Unbekannt
                      kundenPostleitzahl = 666666
                      kundenOrt = ein zweiter Ort
                      kundenFirma = Keine Ahnung

                      nun sieht die ausgabe folgendermaßen aus:
                      Keine | Keine | Keine | Keine | Keine | Keine
                      Keine Ahnung | Keine Ahnung | Keine Ahnung | Keine Ahnung | Keine Ahnung|Keine Ahnung

                      obwohl man in tab_kunde sehen kann dass ich versuche einzelne eigenschaften aufzurufen kommt immer nur die letzte Eigenschaft und bei var_dump kann man sehen dass die letzte eigenschaft garnicht richtig dar ist ([""]=> string(12) "Keine Ahnung").

                      Kommentar


                      • #12
                        error_reporting(E_ALL) wird dir den Fehler wahrscheinlich als Notice nennen.
                        Wie greift man nochmal auf Klassen-Eigenschaften zu? Mit $this->$varname üblicherweise nicht...

                        Kommentar


                        • #13
                          ohhh, ein ziemluich blöder syntax Fehler der mich da seit gestern quält o_0
                          üblicherweise wird es so gemmacht oder: $this->varname ??? thx ^^

                          Kommentar


                          • #14
                            Ja.

                            Kommentar

                            Lädt...
                            X