• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Klassen verbindung

Status
Für weitere Antworten geschlossen.

CrackPod

Neues Mitglied
Ich habe 2 klassen:
-MySQL
-User
Die MySQL Klasse erledigt alle meine MySQL aufgaben(siehe irgendeinen nicht allzu alten post von mir)
Die User Klasse soll alle Aufgaben erledigen, die ich bei der User Verwaltung haben könnte erledigen.
Meine User werden in einer MySQL DB gespeichert.
Wenn ich jetz auf meiner index.php eine MySQL Verbindung über meine MySQL Klasse aufbaue und danach meine User Klasse aufrufe, die auch MySQL Querys ausführen muss, gibt es dann eine Möglichkeit die bestehende Verbindung auch in meiner User Klasse zu verwenden oder muss ich dann in der User Klasse eine neue Verbindung über meine MySQL Klasse aufbauen?

Die Beiden klassen befinden sich in einer Datei (Klassen.php)

Greetz
 
Werbung:
In der User-Klasse der befehl zum Laden (befehle sind fiktiv):
[php:1:7f1d4cf037]<?php
public function load($mysql)
{
$mysql->query('blabla mysql blabla');
// usw.
}
?>[/php:1:7f1d4cf037]
 
Also, wenn auf der index.php das so initialisiere:
[php:1:a3d92343c3]<?php
include('Klassen.php');
$mysql = new MySQL('localhost','root','','db');
?>[/php:1:a3d92343c3]
dann kann ich in der User Klasse per:
[php:1:a3d92343c3]<?php
class User {
#.....
function load() {
mysql->query("SELECT * FROM `hier`");
}
?>[/php:1:a3d92343c3]
etwas aus der DB laden, ohne eine neue Verbindung aufbauen zu müssen?
 
Werbung:
nein.

beispiel:
[php:1:62460a94cc]<?php
class mysql
{

// blabla
public funktion query($sql)
{
// blabla
}
// blabla
}

class user
{
// blabla
public function load($mysql)
{
$mysql->query('sql-befehl');
}
// blabla
}

$db = new mysql();
$benutzer = new user();

$benutzer->load($db);
?>[/php:1:62460a94cc]

verstehst du?
 
Werbung:
[php:1:166a75716e]<?php
class mysql {
class MySQL {
//bla
function Query($sql) {
mysql_query($query);
}
//bla
}
class User {
//bla
function select_user_data($user) {
$mysql->Query("SELECT * FROM `user` WHERE `nick` = '$user'");
}
//bla
}
#hier noch die Verbindung aufbauen und das Script weiterausführen
?>[/php:1:166a75716e]
Geht das so?
Das "ne nich ganz" War auf dein "verstehst du?" bezogen
 
dein instanziertes objekt ist wie eine variable welche es in der methode von user unbekannt ist deswegen musst du sie ihr übergeben.

verschachtelte klassen unterstützt php nicht...
 
Werbung:
ach jetzt hab ich das verstanden....

die ganzen methoden werden ja in $db "gespeichert" und die übergibt man dann alle der klasse User....
und load() läd die dann erstmal oder muss ich das bei jeder methode erneut übergeben, also die $db?
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben