Unire piu funzioni di una classe

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Salve ragazzi volevo chiedervi qual e il metodo usato per fare cio. Es:
PHP:
$db = new DB();

$db->update( user  )->set( nome=arturo )->where( ID=25 );

Bisogna creare la Classe DB con le seguenti funzioni ? o bisogna definerle in un altro modo ?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, perchè vorresti complicarti la vita?
PHP:
<?php

$sql = new mysqli("localhost", "root", "", "database");

$sql->query("UPDATE user SET nome='arturo' WHERE id = 25");
?>
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Ciao, perchè vorresti complicarti la vita?
PHP:
<?php

$sql = new mysqli("localhost", "root", "", "database");

$sql->query("UPDATE user SET nome='arturo' WHERE id = 25");
?>
Ti ringrazio per la risposta pero mi servirebbe il metodo che ho riportato sopra... Come bisogna impostare la Classe per fare cio...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
dovrai crearti le funzioni che ti costruiscono la query e poi dovrai eseguirla
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Tipo cosi
PHP:
class DB {

function update(){


}

function set(){

}

function where(){

}

}

Se sbaglio mi potresti fare un esempio ?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
dovrebbe venire più o meno così
PHP:
<?php

class DB {

    var $query;
    var $sql;

    public function __construct() {
        $this->sql = new mysqli("localhost", "root", "", "database");
    }

    public function update($tab) {
        $this->query .= "UPDATE " . $tab;
    }

    public function set($set) {
        $this->query .= " SET " . $set;
    }

    public function where($where) {
        $this->query .= " WHERE " . $where;
    }
    public function execute() {
        echo $this->query;
    }
}

$db = new DB();
$db->update("user");
$db->set("nome='arturo'");
$db->where("id=25");
$db->execute();
?>
 
Ultima modifica:

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
dovrebbe venire più o meno così
PHP:
<?php

class DB {

    var $query;
    var $sql;
    public function __construct() {
        $this->$sql = new mysqli("localhost", "root", "", "database");
    }

    public function update($tab) {
        $this->query .= "UPDATE " . $tab;
    }

    public function set($set) {
        $this->query .= " SET " . $set;
    }

    public function where($where) {
        $this->query .= " WHERE " . $where;
    }
    public function execute() {
        echo $this->query;
    }
}

$db = new DB();
$db->update("user");
$db->set("nome='arturo'");
$db->where("id=25");
$db->execute();
?>

Scusami forse sono stato io a nn farmi capire. Mi servirebbe questo metodo:
PHP:
$db = new DB(); 

/* Per fare questo come bisogna impostare la classe o bisogna creare piu classi ? */
$db->update( user  )->set( nome=arturo )->where( ID=25 );
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
non ho mai provato ma credo bisogna impostare più classi
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Non è chiaro nemmeno per me, è la prima volta che sento parlare di aggregazione di oggetti, ma sembra interessante ci studierò un po
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Forse ho trovato qualcosa solo che la query mi torna nulla. Forse sbaglio qualcosa !
PHP:
class DB {
	
	var $query, $update, $set, $where;
	
	function update($a){
		$this->update = new Update($a);
		return $this->update;
	}

	function exe(){
		var_dump( $this->query );
	}
	
}

class Update extends DB {
		
	function __construct($a){
		
		$this->query = 'UPDATE '.$a;
		
	}
	
	function set($a){
		$this->set = new Set($a);
		return $this->set;
	}
	
}

class Set extends DB {
	
	function __construct($a){
		$this->query .= ' SET '.$a;
	}
	
	function where($a){
		$this->where = new Where($a);
		return $this->where;
	}
	
}

class Where extends DB {
	
	function __construct($a){
		$this->query .= ' WHERE '.$a;
	}
	
}

$db = new DB;

$db->update('user')->set('name="arturo"')->where('ID=25');

$db->exe();
 

Mr. PHP

Utente Attivo
31 Gen 2013
141
0
0
Risolto con la modalita STATICA.
PHP:
class DB {
	
	static $query;
	
	static function update( $a ){
		
		self::$query = 'UPDATE '.$a;
		
		return new Update( $a );
		
	}
	
	static function exe(){
		return self::$query;
	}
	
}

class Update extends DB {
	
	static function set( $a ){
		
		self::$query .= ' SET '.$a;
		
		return new Set( $a );
		
	}
	
}

class Set extends DB {
	
	static function where( $a ){
	
		self::$query .= ' WHERE '.$a;
	
	}
	
}

class Where extends DB {

	
}

echo '<pre>';

$db = new DB;

$db->update( 'user' )->set( 'name="Arturo"' )->where( 'ID="25"' );

print_r( $db::exe() );
 
Discussioni simili
Autore Titolo Forum Risposte Data
trattorino [PHP] Unire a una query piu tabelle PHP 7
I unire piu tabelle con gli stessi dati PHP 2
X unire più file in un pdf Windows e Software 2
rebeca Come Unire file PST in Uno? Windows e Software 0
Tommy03 Unire dati da due tabelle MySQL 5
K Unire più tabelle in una singola tabella PHP 3
F [PHP] Cercare voci uguali nel db e unire alcune variabili PHP 0
D [PHP] Unire 2 Array con ID in comune PHP 0
R unire 2 reti in una Adsl e Connettività 0
P Unire record Database 0
trattorino [PHP] unire due variabili PHP 0
D unire due tabelle MySQL 1
S Unire due foreach simili PHP 5
D Unire campi PHP 2
P Unire il tasto submit anzicchè averlo in due file PHP 2
G Unire risultato di una select PHP 2
M Unire due modalità di pagina responsive in una... Javascript 0
P Unire due funzioni... Javascript 1
felino [RISOLTO] [MySQL] Unire due tabelle esistenti in una nuova MySQL 1
Monital Unire deglia rray bidiemnsionali PHP 7
criric Unire due array - array_merge() PHP 2
P Unire celle e righe in tabella HTML e CSS 0
G unire union e join insieme MySQL 7
P Unire, confrontare due tabelle da due db diversi fati in phpmyadmin Database 5
max_400 Unire 2 query - calcoli matematici: somma, moltiplicazione, percentuale PHP 7
I consiglio su come unire 2 codici? HTML e CSS 1
M Eliminare backup automatico e unire partizioni Hardware 0
R creazione carrello - unire sito al database PHP 14
T unire più campi e formare un link Database 0
L unire due pagine PHP 0
Z Unire i risultati di due Query PHP 3
X unire pagine php PHP 2
M X POLE e per chi si vuole unire Discussioni Varie 17
Cassandra Si possono unire più linguaggi? HTML e CSS 3
S WORDPRESS NON FA INSTALLARE PIU NULLA WordPress 9
V Hosting piu' adatto Hosting 0
L Scmporre una foto dotata di varie immagini in piu layer Photoshop 2
B getElementById su piu id(Risolto) Javascript 6
D [MS Access] Piu' maschere con una sola tabella dati... MS Access 0
trattorino [Javascript] onclick su piu div insieme Javascript 1
J VENDO ACCOUNT FACEBOOK 1200 amici per lo piu' stranieri Compravendita siti e domini 0
P [Visual Basic] Copiare file piu' grandi di 2 gb in vb6 senza usare filecopy,usando get e put Visual Basic 6
A [PHP] Inviare mail con piu immagini allegate PHP 6
D [Photoshop] aggiungere piu tracce a immagine Photoshop 4
bubino8 [PHP] Select multipla su piu tabelle PHP 3
T4MAR4 [PHP] piu select in ricerca PHP 1
T4MAR4 [PHP] ricercare età con piu campi PHP 2
T4MAR4 [PHP] Inserire piu campi di ricerca PHP 2
trattorino [PHP] Eliminare piu frasi PHP 1
X [Apache] Server non piu accessibile dall'esterno Apache 0

Discussioni simili