php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 23-12-2005, 20:14
Breezzer
 Registrierter Benutzer
Links : Onlinestatus : Breezzer ist offline
Registriert seit: Nov 2005
Beiträge: 98
Breezzer ist zur Zeit noch ein unbeschriebenes Blatt
Standard 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
Mit Zitat antworten
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #2 (permalink)  
Alt 23-12-2005, 20:35
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

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.
Mit Zitat antworten
  #3 (permalink)  
Alt 23-12-2005, 21:56
Breezzer
 Registrierter Benutzer
Links : Onlinestatus : Breezzer ist offline
Registriert seit: Nov 2005
Beiträge: 98
Breezzer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
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


Zitat:
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?
Mit Zitat antworten
  #4 (permalink)  
Alt 23-12-2005, 22:09
flyx
 Junior Member
Links : Onlinestatus : flyx ist offline
Registriert seit: May 2004
Beiträge: 72
flyx ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
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.
Mit Zitat antworten
  #5 (permalink)  
Alt 24-12-2005, 12:20
Breezzer
 Registrierter Benutzer
Links : Onlinestatus : Breezzer ist offline
Registriert seit: Nov 2005
Beiträge: 98
Breezzer ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
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
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

Microweber CMS

Open source, drag and drop website builder

13.01.2020 Berni | Kategorie: HTML5/ EDITOR
PhoneGap Apps mit JS, CSS3 und HTML5 erstellen ansehen PhoneGap Apps mit JS, CSS3 und HTML5 erstellen

PhoneGap, Framework zur Erstellung hybrider Applikationen für mobile Endgeräte.

13.01.2020 Berni | Kategorie: App-Entwicklung
Bo)Tickets

Bo)Tickets bietet Ihnen eine Schnittstelle für Kundenanfragen an. In dem Script definieren Sie Supportbereiche, also zum Beispiel „Technik, Buchhaltung, Support“. Ihre Kunden können dann über ein Formular eine Anfrage abschicken.

31.12.2019 bocombo | Kategorie: PHP/ Ticketsystem
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:19 Uhr.