Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 16:18

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Suche PHP OOP MYSQL Hilfe

Discussion on Suche PHP OOP MYSQL Hilfe within the Web Development forum part of the Coders Den category.

Closed Thread
 
Old   #1

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
Suche PHP OOP MYSQL Hilfe

Alle Frage, wurde gelöst!!! Danke an alle.

Alte Frage



Altee Frage
Givemoney is offline  
Old 07/14/2015, 21:00   #2
 
KoKsPfLaNzE's Avatar
 
elite*gold: 0
Join Date: Jan 2009
Posts: 731
Received Thanks: 233
hallo, die connection sollte eigentlich stimmen, bist dir sicher das der port 3307 ist und nicht 3306?

Btw auch wenn du klassen und methoden nutzt bedeutet es nicht das es sinvoll ist den code so aufzubauen=), aber zum lernen besser als nix=)
KoKsPfLaNzE is offline  
Thanks
1 User
Old 07/14/2015, 21:02   #3

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
Ja 3307 habe mehrere Instanzen also Ports freigegeben.

Naja Für meine Sache ist oop schwachsinn, jedoch wollte ich es mal ausprobieren.

Soweit bekomm ich auch alles hin.. Aber er erbt die Verbindung nicht..



// habe eine Warenwirschaft mit PHP erstellt für eine Firma als Projekt, das ganze soll ich nun mit OOP strukturieren. So soll ich lernen mit OOP umzugehen, um dann auch Plugins usw für cms einfach zu entwickeln bzw. anzupassen^^

// bin IT-Systemkaufmann interessiere mich aber für entwicklungen und deswgen das Projekt. Nartülich bin ich nicht der beste aber ich bekomme webseiten hin das auch ganz gut aber oop ist für mich neu und deswgen die fragen..^^ bin ja kein Anwedungsentwickler.
Givemoney is offline  
Old 07/14/2015, 21:12   #4

 
iProModzZ's Avatar
 
elite*gold: 0
The Black Market: 235/0/0
Join Date: Dec 2014
Posts: 1,155
Received Thanks: 122
Warum arbeitest du mit mysql? wenn dann schon mit mysqli oder PDO...
iProModzZ is offline  
Thanks
1 User
Old 07/14/2015, 21:25   #5
 
elite*gold: 0
Join Date: May 2015
Posts: 700
Received Thanks: 445
Wo genau gibt es den Fehler? Verwende mysql_error(), um mehr Informationen zu bekommen. Dein Problem hat aber nichts mit OOP zu tun.
algernong is offline  
Thanks
1 User
Old 07/14/2015, 21:31   #6

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
Naja noch geht mysql aber nartülich hast du recht habe PDO auf meiner andere Datei, wechsel ich dann aus^^ aber das löst ja nicht das Problem.

Naja der Fehler ist das "class Eingabe" keine DB verbindung hat. Meine frage ist warum.
Habe ich irgendwas vergessen?.

Hm Aber der Connect geht ja bei der ersten Class nur nicht bei dem 2 obwohl ich extends drine habe^^


@Danke an alle die sich die Zeit nehmen.^^
Givemoney is offline  
Old 07/14/2015, 22:23   #7
 
Warnuk3r's Avatar
 
elite*gold: 307
Join Date: Jul 2009
Posts: 1,091
Received Thanks: 434
Vielleicht das?

PHP Code:
class Eingabe extends Rechnung {
     public function 
__construct() {
          
parent::__construct();
     }

Warnuk3r is offline  
Old 07/14/2015, 22:27   #8
 
elite*gold: 0
Join Date: May 2015
Posts: 700
Received Thanks: 445
Quote:
Originally Posted by Givemoney View Post
Naja noch geht mysql aber nartülich hast du recht habe PDO auf meiner andere Datei, wechsel ich dann aus^^ aber das löst ja nicht das Problem.

Naja der Fehler ist das "class Eingabe" keine DB verbindung hat. Meine frage ist warum.
Habe ich irgendwas vergessen?.

Hm Aber der Connect geht ja bei der ersten Class nur nicht bei dem 2 obwohl ich extends drine habe^^


@Danke an alle die sich die Zeit nehmen.^^
Wo genau kommt der Fehler? Schlägt mysql_connect() fehl? Schlägt mysql_query() fehl? Fehlermeldung?
Der MySQL Kram in deinem Code hat nichts mit OOP / Vererbung zu tun.

Quote:
Originally Posted by Warnuk3r View Post
PHP Code:
class Eingabe extends Rechnung {
     function 
__construct() {
          
parent::__construct();
     }

Ändert nichts, denn Eingabe hat keinen Konstruktor, also wird ohnehin der von Rechnung verwendet. In mysql_query() wird aber auch gar kein Handle übergeben, also nutzt PHP ohnehin die zuletzt aufgebaut Verbindung. Und eine Verbindung wird sogar zweimal aufgebaut:
PHP Code:
$db1 = new Rechnung();
$db2 = new Eingabe(); 
algernong is offline  
Thanks
1 User
Old 07/14/2015, 22:31   #9

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
@algerong

Ich schaue morgen früh mal und baue msql error ein und poste das ergebnis dann hier.

Finde es schonmal Klasse das du dir die Zeit nimmst
Givemoney is offline  
Old 07/14/2015, 23:58   #10
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,407
Received Thanks: 2,024
Nunja, wie soll er denn auch $db erben? Ist ja nur ne lokale Variable (in deiner Variante). Daher wird $db nicht vererbt.

Eigentlich sollte die mysql_query etc. die letzte geöffnete Verbindung nutzen (wie algernong bereits gesagt hat), aber auch bei meinem Test war das nicht der Fall.

Folgendes funktioniert (absichtlich mysql_* genutzt, da du es ja auch noch nutzt):

PHP Code:
<?php
abstract class DBHandler {
    protected 
$db;

    public function 
__construct() {
        
$this->db mysql_connect("localhost""root""pw"); // veraltet sollte nicht mehr genutzt werden
        
mysql_select_db("db"$this->db) or die(mysql_error());
    }

}

class 
MyClass extends DBHandler {

    
/*
    hier kann $this->db genutzt werden, ressource wurde von parent geerbt
     */
    
    /**
     * Nur eine Testfunktion
     * @return [array] [portfolio infos]
     */
    
public function testConnection() {
        return 
mysql_fetch_assoc(mysql_query("SELECT * FROM portfolio"));
    }
}

$myClass = new MyClass();

var_dump($myClass->testConnection());

?>
Dennoch lege ich dir nahe (wie auch die anderen) auf PDO oder mysqli umzusteigen (vorzugsweise PDO).

Ein Beispiel für eine Datenbankklasse basierend auf PDO wäre z.B.

Auch würde ich die Datenbankverbindung nicht in eine "andere" Klasse implementieren.

Wenn du jetzt Beispielsweise eine weitere Klasse Userverwaltung hättest die auch die Datenbank benötigt, müsstest du dort entweder auch die DB-Connection implementieren oder (in deinem Beispiel) von Rechnung erben (was semantisch keinen Sinn macht).

Daher würde ich dir empfehlen eine extra Datenbankklasse zu schreiben (wie bereits von mir angedeutet) und dort 2 statische Methoden (ähnlich meinem Beispiel auf Github) zu implementieren.

Dabei kannst du nun zu Beginn deines Scripts (wenn du ein Includesystem nutzt, also am Anfang der Index) einfach (bei dem GitHub-Beispiel)

PHP Code:
DB:initDB(); 
aufrufen und dann fortan in der Klasse die du nutzt, einfach per

PHP Code:
DB::getDB(); 
auf die Datenbankverbindung zugreifen und einfach Querys absetzen.

PHP Code:
class MyTool {
  public function 
doXY() {
      
DB::getDB()->query("XYZ");
  }

Das ist zumindest mein Ansatz für die Datenbankabstraktion. Natürlich gibt es da unterschiedliche Ansätze, aber es schadet nicht sich da ein paar Gedanken zu zumachen.
Mfg
NotEnoughForYou is offline  
Thanks
1 User
Old 07/15/2015, 12:59   #11

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
Ich bedanke mich, das war die Lösung.

Kann ich "Eigenschaften" inkludieren? Sprich das ich public $host = "localhost:3307"; in einer inc ode txt datein mache und dies, dann aufrufe leider kommt immer der Fehler das ich das nur in der Funktion selber mache kann.. gibt eine andere möglichkeit die Login daten nicht direkt in der PHP datei zuhaben?.
Givemoney is offline  
Old 07/15/2015, 13:22   #12
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,407
Received Thanks: 2,024
Entweder eine konstante Definieren (define) oder per Klassen konstanten / oder sonstige setter setzen.

Du kannst es auch in normale variablen schreiben und die dann beim erzeugen des Objekts übergeben.

Alternativ (nicht empfehlenswert) könntest du die variablen auch global setzen dann müsstest du sie nicht übergeben.

Ich nutze meistens die Variante mit define.

Mfg
NotEnoughForYou is offline  
Thanks
1 User
Old 07/15/2015, 14:33   #13

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
Mir geht es darum das ich die Connect daten "Host" "PW" "USEr" nicht öffentlich preisgeben möchte, sondern die in einer externe .Txt oder .inc datei haben möchte und diese möchte ich dann ikludieren.

Leider Spuckt er mit immer wieder einen Fehler aus, das ich bei eigenschaften der Klasse nicht inkludieren kann, obwohl ja dort die Variable gesetzt werden..

Er sagt immer das ich das In der Funktionsebene inkludieren muss, dies hilft mir aber leider nicht weiter.


Konstante definieren bzw klassen konstante definieren bringt mir doch bei der Sache nichts oder? das sind ja Variablen die einfach Konstant sind aber trotzdem sichtbar in der Datei.
Givemoney is offline  
Old 07/15/2015, 15:20   #14
dotCom
 
Devsome's Avatar
 
elite*gold: 12400
The Black Market: 104/0/0
Join Date: Mar 2009
Posts: 15,880
Received Thanks: 4,386
Quote:
Originally Posted by Givemoney View Post
Mir geht es darum das ich die Connect daten "Host" "PW" "USEr" nicht öffentlich preisgeben möchte, sondern die in einer externe .Txt oder .inc datei haben möchte und diese möchte ich dann ikludieren.

Leider Spuckt er mit immer wieder einen Fehler aus, das ich bei eigenschaften der Klasse nicht inkludieren kann, obwohl ja dort die Variable gesetzt werden..

Er sagt immer das ich das In der Funktionsebene inkludieren muss, dies hilft mir aber leider nicht weiter.


Konstante definieren bzw klassen konstante definieren bringt mir doch bei der Sache nichts oder? das sind ja Variablen die einfach Konstant sind aber trotzdem sichtbar in der Datei.
Sie in einer *txt zuspeichern ist das schlimmste was man machen kann.
Da könnte man sich irgendwie bekommen & runterladen.
In einem PHP Tag kommt keiner an die Sachen dran.
Devsome is offline  
Thanks
1 User
Old 07/15/2015, 15:25   #15

 
Givemoney's Avatar
 
elite*gold: 18
The Black Market: 677/0/0
Join Date: Feb 2012
Posts: 28,541
Received Thanks: 1,109
soweit ich weis hat fast jede PHP Seite eine Config.inc datei^^
Givemoney is offline  
Closed Thread


Similar Threads Similar Threads
MYSQL Datenbank Suche hilfe.
08/12/2013 - Web Development - 5 Replies
closed.
[Suche] Hilfe für Lizenzsystem vb.net mysql php
03/29/2013 - General Coding - 1 Replies
Hallo zusammen, suche jemanden, der mir bei meinem Projekt helfen kann. Habe ein Fertiges Projekt in vb.net geschrieben, nun möchte ich dieses mit einem Lizenzsystem versehen. Habe null Ahnung von Mysql. Server, Webspace, PHPmyadmin und Mysql vorhanden. Das Lizenzsystem soll vor mein eigentliches Programm geschalten werden. Es sollen Tages-abo-lizenzen vergeben werden können, sprich 7 Tage, 14 Tage, usw..
Suche Hilfe Mysql!
03/29/2013 - Metin2 Private Server - 1 Replies
Hallo. Wie gesagt bekomme ich diese fehler ! http://www.fotos-hochladen.net/uploads/unbenannt3 tsk54azqy.png Wer könnte mir da helfen bitte ?
Suche Hilfe für MySQL
04/25/2012 - Metin2 Private Server - 6 Replies
Hey Leute , n Kumpel und ich haben vor uns nen eigenen P-Server zu erstellen. Es hat soweit auch alles schon recht gut geklappt. Es ist zu Testzwecken erstmal nur ein Homeroot. Diesen hat er auf seinem Pc erstellt. Da wir aber beide bisschen dran rumbasteln wollen muss ich auch auf die MySQL Datenbank zugreifen können. Meine Frage also nun .. Wie ?! :mad: Hatte zwar schon n Programm (easycontrol) aber das funzte iwie mal gar nicht.. Ich hoffe nun auf eure Unterstützung.
MySql suche hilfe !
10/08/2010 - Metin2 Private Server - 3 Replies
Warning: mysql_connect() : root connections are not allowed on in /usr/export/www/vhosts/funnetwork/hosting/crankmet in/dateien/scripts/admin/pages/main.htm on line 5 ERROR: Connection failed. Das kommt auf meiner Hp auf meinem DynDns server was muss ich tuhen wäre nett wen ihr mir helfen würdet Edded mich bei skype : max199495 oder schreibt hier gebe 10€ paysafe wenn es klappt ! danke :handsdown:



All times are GMT +2. The time now is 16:18.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.