PHP Klasse

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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*

    Comment


    • #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

      Comment


      • #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
        Last edited by Kropff; 10-09-2008, 18:56.
        Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
        Meine Seite

        Comment


        • #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?
          Last edited by nevermind; 10-09-2008, 19:08.

          Comment


          • #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

            Comment


            • #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

              Comment


              • #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

                Comment

                Working...
                X