- Home
- Categorie
- Coding e Sistemistica
- Coding
- passaggio da procedurale a oop
- 
							
							
							
							
							passaggio da procedurale a oopBuongiorno a tutti, sono un appassionato dilettante di php, quel poco che ho fatto l'ho scritto sempre con php procedurale, 
 ora vorrei passare a php ad oggetti, per questo vorrei una delucidazione:prima scrivevo: [PHP] 
 function utenti(){
 $array_utenti = array();
 $query_utenti = mysql_query("SELECT utenti.nome, utenti.cognome, utenti.foto, utenti.email, siti.url FROM utenti INNER JOIN utente_sito ON utenti.id = utente_sito.utente INNER JOIN siti ON siti.id = utente_sito.sito ORDER BY siti.url ASC");
 while ($row = mysql_fetch_assoc($query_utenti)): $array_utenti[] = array(
 "nome" => $row['nome'],
 "cognome" => $row['cognome'],
 "foto" => $row['foto'],
 "email" => $row['email'],
 "url" => $row['url']
 );
 endwhile;
 $utenti = array();
 foreach ($array_utenti as $utente) {
 $utenti[] = array(
 "nome" => $utente['nome'],
 "cognome" => $utente['cognome'],
 "foto" => $utente['foto'],
 "email" => $utente['email'],
 "url" => $utente['url']
 );
 }
 return $utenti;
 }
 $utenti = utenti();
 foreach ($utenti as $utente) {
 echo $utente['url']."<br />";
 echo $utente['nome']."<br />";
 echo $utente['cognome']."<br />";
 echo $utente['foto']."<br />";
 echo $utente['email']."<hr>";
 }
 [/PHP]ora scrivo: [PHP] 
 class Editor{
 public function utenti(){
 $array_utenti = array();
 $query_utenti = mysql_query("SELECT utenti.nome, utenti.cognome, utenti.foto, utenti.email, siti.url FROM utenti INNER JOIN utente_sito ON utenti.id = utente_sito.utente INNER JOIN siti ON siti.id = utente_sito.sito ORDER BY siti.url ASC");
 while ($row = mysql_fetch_assoc($query_utenti)): $array_utenti[] = array(
 "nome" => $row['nome'],
 "cognome" => $row['cognome'],
 "foto" => $row['foto'],
 "email" => $row['email'],
 "url" => $row['url']
 );
 endwhile;
 $utenti = array();
 foreach ($array_utenti as $utente) {
 $utenti[] = array(
 "nome" => $utente['nome'],
 "cognome" => $utente['cognome'],
 "foto" => $utente['foto'],
 "email" => $utente['email'],
 "url" => $utente['url']
 );
 }
 return $utenti;
 }
 }
 $class_editor = new Editor();
 $utenti = $class_editor->utenti();
 foreach ($utenti as $utente) {
 echo $utente['url']."<br />";
 echo $utente['nome']."<br />";
 echo $utente['cognome']."<br />";
 echo $utente['foto']."<br />";
 echo $utente['email']."<hr>";
 }
 [/PHP]secondo voi è corretto? 
 
- 
							
							
							
							
							
[PHP]class Editor 
 {
 private $db;
 protected $array_utenti = array();public function __construct() { $this->db = new mysqli('localhost', 'root', '', 'prova'); } protected function utenti() { $query_utenti = $this->db->query('SELECT utenti.nome, utenti.cognome, utenti.foto, utenti.email, siti.url FROM utenti INNER JOIN utente_sito ON utenti.id = utente_sito.utente INNER JOIN siti ON siti.id = utente_sito.sito ORDER BY siti.url ASC'); while ($row = $query_utenti->fetch_array(MYSQLI_ASSOC)) { $this->array_utenti[] = array( "nome" => $row['nome'], "cognome" => $row['cognome'], "foto" => $row['foto'], "email" => $row['email'], "url" => $row['url'] ); } } public function getUtenti() { $this->utenti(); print "<pre>".print_r($this->array_utenti, true)."</pre>"; foreach($this->array_utenti as $utente) { echo $utente['url']."<br />"; echo $utente['nome']."<br />"; echo $utente['cognome']."<br />"; echo $utente['foto']."<br />"; echo $utente['email']."<hr>"; } }} $editor = new Editor(); 
 $editor->getUtenti(); [/PHP]
 
- 
							
							
							
							
							Grazie mille x la risposta, scusa il ritardo ma non ho ricevuto la notifica. Do un occhio al codice e se ho dubbi ti chiedo. Buon week end e grazie ancora! 
 
- 
							
							
							
							
							Ciao Jhon92, 
 ho una domanda, ma perchè estrai i dati con un metodo, e con un altro li stampi? Sicurezza?sto provando a scrivere delle classi, posto il codice così mi dici cosa ne pensei. ciao e grazie! [PHP] 
 <?php
 class Examples{
 private $db;public function __construct(){ $this->db = new mysqli('localhost', 'root', 'hal9000', 'examples'); } public function get_actors(){ $actors = array(); $query = $this->db->query('SELECT * FROM actor LIMIT 10'); while ($row = $query->fetch_array(MYSQLI_ASSOC)){ $actors[] = array( "id" => $row['actor_id'], "fullname" => $row['fullname'] ); } return $actors; } public function __destruct(){ mysqli_close($this->db); } } class Codeigniter{ private $db; public function __construct(){ $this->db = new mysqli('localhost', 'root', 'hal9000', 'myapp_moto'); } public function get_actors(){ $actors = array(); $query = $this->db->query('SELECT * FROM articoli LIMIT 10'); while ($row = $query->fetch_array(MYSQLI_ASSOC)){ $actors[] = array( "id" => $row['id'], "titolo" => $row['titolo'] ); } return $actors; } public function __destruct(){ mysqli_close($this->db); } } $attori = new Examples(); echo "<pre>"; print_r($attori->get_actors()); echo "</pre>"; $news = new Codeigniter(); echo "<pre>"; print_r($news->get_actors()); echo "</pre>";?> 
 [/PHP]
 
- 
							
							
							
							
							
Posso permettermi un consiglio? Usate gli heredocs! 
 
- 
							
							
							
							
							Perchè?