Problem mit Eigenschaftenübergabe zwischen Klassen (vererbung? )

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

  • Problem mit Eigenschaftenübergabe zwischen Klassen (vererbung? )

    Hio...

    ich wollt den Titel mal äußerst Informativ gestalten, vielleicht ist es gelungen :P

    Mein Problem ist folgendes:

    Ich habe eine Klass 'conenction' , die eben die Verbindung zur MySQl herstellt und verwaltet - klappt auch wunderbar.

    Nun hab ich noch eine Klasse 'setValue', die einen bestimmten Wert updaten soll und dazu auf die Klasse 'connection' zugriff benötigt. Da ich mich noch net so lang mit OOP beschäftige dachte ich, dass das mit 'extends' gehen müsste.
    Tuts aber nicht, ich hoffe ihr könnt mir helfen


    ...ich befürcht ja, dass der Zugriff von der setValue-Klasse auf die connection-Klasse falsch aufgebaut ist. Aber ich lass mal lieber die Profis ran


    connection-Klasse:
    PHP-Code:
    <?php
        
    class connection 
        
    {
            var 
    $conID;
            var 
    $result;
            var 
    $queryCount 0;
             
            function 
    connection($host,$user,$password)
            {
                if(
    $this->conID mysql_connect($host,$user,$password))
                    return 
    $this->conID;
                else
                    return 
    false;
            }
            
            function 
    selectDB($db)
            {
                if(
    mysql_select_db($db,$this->conID))
                    return 
    true;
                else
                    return 
    false;
            }
            
            function 
    query($query)
            {
                if(
    $this->result mysql_query($query,$this->conID))
                {
                    return 
    $this->result;
                    
    $this->queryCount++;
                }
                else
                    return 
    false;
            }
            
            function 
    show()
            {
                return 
    mysql_fetch_object($this->result);
            }
            
            function 
    closeDB()
            {
                
    mysql_close($this->conID);
            }
        }
    ?>

    setValue-Klasse:
    PHP-Code:
    <?php
        
    class setValue extends connection 
        
    {
            function 
    setValue($option,$value)
            {
                
    $query 'UPDATE
                            Settings
                          SET
                              Value = "'
    .$value.'"
                          WHERE 
                              Adjustment = "'
    .$option.'"';
                
                
    $this->query($query);        
            }
        }
    ?>
    so ruf ich das bisher auf:

    PHP-Code:
    <?php
            $db 
    = new connection(HOST,USER,PASSWORD);
                    
            
    $db->selectDB(DATABASE);
            
            
    $test = new setValue('Activation',$_POST['registration']);
            
            
            
    $db->closeDB();
    ?>
    mfg
    Breezzer

  • #2
    auch du darfst die ausgabe von mysql_error() hinter dem ausführen der query posten. dann siehst du, wo dein fehler ist (teste einfach mal ausführlich, ob $test über eine verbindung zur db verfügt).

    über den sinn einer solchen verwendung bzw. eines solchen mißbrauchs von oop lässt sich streiten.

    Kommentar


    • #3
      Original geschrieben von penizillin
      auch du darfst die ausgabe von mysql_error() hinter dem ausführen der query posten. dann siehst du, wo dein fehler ist (teste einfach mal ausführlich, ob $test über eine verbindung zur db verfügt).
      argh...^^
      das hab ich komplett vergessen.

      die verbindungs-id wird nicht übergeben, der fehler kommt in der connection-klasse bei der if-bedingung der query-methode...$this->conID ist wohl ein leerer string, wobei ich schon alles ausprobiert habe, was mir eingefallen ist , um den fehler zu finden :P
      sonst wär ich ja net hier


      Original geschrieben von penizillin
      über den sinn einer solchen verwendung bzw. eines solchen mißbrauchs von oop lässt sich streiten.
      wie sollt ich das denn deiner meinung nach machen?
      einfach immer die verbindungs-id mit an die funktion übergeben?

      Kommentar


      • #4
        Original geschrieben von Breezzer

        wie sollt ich das denn deiner meinung nach machen?
        einfach immer die verbindungs-id mit an die funktion übergeben?
        Ich muss meinem Vorredner recht geben.
        Hier ist wohl keine Vererbung angebracht.
        Das einfachste ist, du übergibst das DB-Objekt an die andere Klasse.
        Das ist auch objektorientiert gedacht. Eine Assoziation zwischen zwei Klassen (was du hier wohl hast) wird über die Übergabe des Zeigers auf ein Klasse in die andere Klasse gelöst.
        Wenn du schon mit OO anfängst, dann soltest du dich auch mit den Konventionen auseinandersetzen.

        Kommentar


        • #5
          Original geschrieben von flyx
          Ich muss meinem Vorredner recht geben.
          Hier ist wohl keine Vererbung angebracht.
          Das einfachste ist, du übergibst das DB-Objekt an die andere Klasse.
          Das ist auch objektorientiert gedacht. Eine Assoziation zwischen zwei Klassen (was du hier wohl hast) wird über die Übergabe des Zeigers auf ein Klasse in die andere Klasse gelöst.
          Wenn du schon mit OO anfängst, dann soltest du dich auch mit den Konventionen auseinandersetzen.
          ok, danke.
          dann werd ich es wohl so machen.

          mfg
          Breezzer

          PS: schöne Weihnachten

          Kommentar

          Lädt...
          X