PHP Klasse

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

  • PHP Klasse

    Hallo zusammen,

    bitte nicht erschlagen, weil es schon tausend Threads zu diesem Thema gibt. Ich hab versucht eine sehr simple Klasse für meine Benutzerverwaltung zu schreiben. Allerdings stoße ich da ein bisschen an mein Grenzen. Ich habe zwar auf der Page von Kropff gelesen aber nicht wirklich verstanden .

    Habe folgende Funktion in der Klasse:
    PHP-Code:
    class userModell {    
    function 
    profil ($spielerID) {
            
    $sql sprintf("Select `name`, `vname`, `bname`, `email`, `team` From `spieler` Where `id` = '%s'"
    mysql_real_escape_string($spielerID));
            
    $query mysql_query($sql);
            
    $spieler mysql_fetch_row($query);
        }

    Diese will ich wie folgt aufrufen:
    PHP-Code:
    include_once('class/usermodell.class.php');
    $profil = new userModell();
    echo 
    $profil->profil($_SESSION['spielerID']);
    echo 
    $spieler[1]; 
    Bekomme aber immer den Fehler das die Variable $spieler nicht vorhanden ist. Die $_SESSION['spielerID'] ist vorhanden. Wenn ich die Funktion direkt in die Datei schreibe wo sie auch aufgerufen wird, klappt es. Daher liegt es nicht an der Abfrage.

    Danke schonmal für eure Hilfe
    chris

  • #2
    Du solltest vielleicht den Wert aus deiner Funktion zurückgeben.
    Schau dir mal return() an.
    *blubb*

    Kommentar


    • #3
      Wird die return() Anweisung innerhalb einer Funktion aufgerufen, wird die Ausführung der Funktion sofort beendet und das Argument als Wert des Funktionsaufrufs zurückgegeben.
      Was bringt mir das wenn die Variable nicht vorhanden ist? Wie willst du das denn da einbauen? Versteh ich nicht

      Kommentar


      • #4
        PHP-Code:
        class userModell 
        {    
            public function 
        profil ($spielerID
            {
                
        $sql sprintf("Select `name`, `vname`, `bname`, `email`, `team` From `spieler` Where `id` = '%s'"
                
        mysql_real_escape_string($spielerID));
                
        $query mysql_query($sql);
                
        $spieler mysql_fetch_row($query);
                return 
        $spieler;
            }
        }
        include_once(
        'class/usermodell.class.php');
        $profil = new userModell();
        $spieler $profil->profil($_SESSION['spielerID']);
        print_r($spieler
        oder alternativ
        PHP-Code:
        class userModell 
        {   
          public 
        $spieler;
          public function 
        profil ($spielerID
          {
            
        $sql sprintf("Select `name`, `vname`, `bname`, `email`, `team` From `spieler` Where `id` = '%s'"
            
        mysql_real_escape_string($spielerID));
            
        $query mysql_query($sql);
            
        $this -> spieler mysql_fetch_row($query);
          }
        }
        include_once(
        'class/usermodell.class.php');
        $profil = new userModell();
        $profil -> profil($_SESSION['spielerID']);
        print_r($profil -> spieler); 
        peter
        Zuletzt geändert von Kropff; 10.09.2008, 19:56.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Kommentar


        • #5
          hey danke Peter. Allerdings klappt die 2. Variante bei mir nicht. Kann das daran liegen, das ich bei Strato kein PHP 5 hab? Ich mein wegen der Public function.

          Was ich auch nicht verstehe, warum wird die Variable Spieler in der Klasse erstellt, um sie dann beim aufruf mit $spieler = $profil->profil($_SESSION['spielerID']); nochmal zu erstellen? Oder hab ich da nen Denkfehler?
          Zuletzt geändert von nevermind; 10.09.2008, 20:08.

          Kommentar


          • #6
            Original geschrieben von nevermind
            hey danke Peter. Allerdings klappt die 2. Variante bei mir nicht. Kann das daran liegen, das ich bei Strato kein PHP 5 hab? Ich mein wegen der Public function.
            jepp. Aber dann solltest du langsam den provider wechseln.
            Original geschrieben von nevermind
            Was ich auch nicht verstehe, warum wird die Variable Spieler in der Klasse erstellt, um sie dann beim aufruf mit $spieler = $profil->profil($_SESSION['spielerID']); nochmal zu erstellen? Oder hab ich da nen Denkfehler? [/B]
            namen sind schall und rauch. du könntest das auch so machen:
            PHP-Code:
            class userModell 
            {    
              function 
            profil ($spielerID
              {
                
            $sql sprintf("Select `name`, `vname`, `bname`, `email`, `team` From `spieler` Where `id` = '%s'"
                
            mysql_real_escape_string($spielerID));
                
            $query mysql_query($sql);
                
            $spieler mysql_fetch_row($query);
                return 
            $spieler;
              }
            }
            include_once(
            'class/usermodell.class.php');
            $profil = new userModell();
            $bla $profil->profil($_SESSION['spielerID']);
            print_r($bla
            Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
            Meine Seite

            Kommentar


            • #7
              das ich bei Strato kein PHP 5 hab? Ich mein wegen der Public function.
              1. public ist keinesfalls eine Funktion
              2. auch Strato kann PHP5 !
              Wir werden alle sterben

              Kommentar


              • #8
                ich weis das public keine function ist aber in diesem fall würde es ja public function heißen. Zweitens weis ich das Strato PHP 5 hat, ich hab aus irgendeinem Fehler aber nur PHP 4.4.9. Hab das grad mal mit dem Support geklärt

                Kommentar

                Lädt...
                X