Immernoch Klassen-Problem

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

  • Immernoch Klassen-Problem

    Guten Morgen,

    ich bekomme es immer noch nicht mit den Klassen gebacken. Wie kann ich in Klasse B auf eine Methode der Klass A zugreifen und diese verwenden? Ich habe es jetzt so versucht (gleich mal anhand meines Quellcodes):

    PHP Code:
    class DB {
    var 
    $conn;
    var 
    $res;

    function 
    connect_db($host$user$pass) {
    if(!
    $this->conn mysql_connect($host$user$pass)) {
    die (
    mysql_error());
    }
    else { echo 
    "Verbindung: erfolgreich<br>"; }
    return 
    $this->conn;
    }

    function 
    select_db($db) {
    if(!
    mysql_select_db($db$this->conn)) {
    die (
    mysql_error());
    }
    else { echo 
    "Auswahl: erfolgreich<br>"; }
    }
    }

    class 
    Login extends DB {
    var 
    $res_id;

    function 
    check_user($un$up) {
    $sql "SELECT id FROM user WHERE uname='".$un."' AND upass='".$up."'";
    if(
    $this->res_id mysql_query($sql$this->conn)) {
    echo 
    "Funzt";
    }
    return 
    $this->res_id;
    }

    Wenn ich das Script nun ausführe erhalte ich folgende Fehlermeldung:

    "Warning: Supplied argument is not a valid MySQL-Link resource on line 34"

    In Line 34 steht das:

    PHP Code:
     if($this->res_id mysql_query($sql$this->conn)) 
    conn kommt aus der Klasse DB() .


    Gruß Arndtinho

  • #2
    $conn ist ja nicht von der Klasse Login.
    Deshalb heisst die var ja net $this->conn sondern DB::conn.
    Btw. naechstes mal suchen.

    Comment


    • #3
      parent:: <-- besser als name der klasse ( passt immer )
      h.a.n.d.
      Schmalle

      http://impressed.by
      http://blog.schmalenberger.it



      Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
      ... nur ohne :-)

      Comment


      • #4
        Hi,

        jetzt bin ich völlig durcheinander und verstehe nichts mehr.
        Was bedeutet DB::conn und wo muss es wie eingesetzt werden?

        Gruß Arndtinho

        Comment


        • #5
          bitte mal im manual nachlesen:

          ::
          parent

          gruss

          Comment


          • #6
            Hallo,

            danke. Habe mir das angeschaut und meine Login Klasse sieht jetzt so aus (vorläufig):

            PHP Code:
            class Login extends DB {
                function 
            check_user($un$up) {
                    
            parent::connect_db($host$user$pass);
                    
            parent::select_db($db);
                }

            Wenn ich jetzt das Script ausführe, wird die Connection erfolgreich aufgebaut. Beim DB-Select kommt aber ein Fehler:

            "No database selected."

            Was ist nun noch verkehrt? Denn wenn ich mir die einzelnen Funktionsresultate der DB Klasse ausgebe funzt es einwandfrei.

            Gruß Arndtinho

            Comment


            • #7
              die Methoden: connect_db und select_db erwarten Parameter die du der
              Klasse Login nicht übermitteln kannst, wie soll denn sowas funz? Die
              Verbindung zur DB war zustande gekommen, weil du vermutlich
              defaultmässig in php.ini festgelegt hast, sonst würde es auch nicht funz.

              Comment


              • #8
                Also ist es vermutlich besser nur eine einzige Klasse für das Login zu schreiben, welche die Connection usw. und die check_user-Funktion beinhalten, oder?

                Gruß Arndtinho

                Comment


                • #9
                  OffTopic:
                  wenn du weder weisst warum man classn benutzt, noch wie man sie benutzt, warum tust du es dann?
                  h.a.n.d.
                  Schmalle

                  http://impressed.by
                  http://blog.schmalenberger.it



                  Wichtige Anmerkung: Ich habe keine Probleme mit Alkohol ...
                  ... nur ohne :-)

                  Comment


                  • #10
                    um es zu lernen.

                    Comment

                    Working...
                    X