Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
PHP - Classe PHP per l'istruzione select di mysql ...
Forum - PHP - Classe PHP per l'istruzione select di mysql ...

Avatar
giocala88 (Normal User)
Expert


Messaggi: 248
Iscritto: 23/04/2008

Segnala al moderatore
Postato alle 16:34
Lunedì, 28/11/2011
Salve ragazzi mi sto cimentando nella programmazione ad oggetti in php e vorrei condividere con voi un parere riguardante una funzione creata da me per selezionare dei record di una query mysql. La classe con la dovuta funzione a riguardo è la seguente:
Codice sorgente - presumibilmente Php

  1. class MyClass {
  2.  
  3.         // variabili membro
  4.         var $a;
  5.         var $b;
  6.          
  7.         // funzioni
  8.         public function SelectQuery() {
  9.                
  10.            
  11.                         $query = mysql_query("SELECT $this->b FROM $this->a ");
  12.                        
  13.                         if($query) {
  14.                        
  15.                                 while($rows = mysql_fetch_array($query)) {
  16.                                
  17.                                         $campo = $rows[$this->b];
  18.                                        
  19.                                         echo"$campo";
  20.                                 }
  21.                                
  22.                         }
  23.                 }              
  24.  
  25.         }
  26.  
  27. $myClass2 = new MyClass();
  28.  
  29. // impostazione proprietà
  30. $myClass2->b = "cognome";
  31. $myClass2->a = "user";
  32.  
  33. // stampa
  34. $myClass2->SelectQuery();



In questo modo la classe funziona bene e il cognome viene stampato correttamente. Ma io avrei un'esigenza diversa e cioè quella di stampare tutti i valori dei records che compongono la tabella. Come posso fare? 8-| grazie a tutti anticipatamente  


PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Up
2
Down
V
Segnala al moderatore
Postato alle 18:49
Lunedì, 28/11/2011
Passa "*" per selezionare tutti i campi, dopodiche' usa un foreach su $rows all'interno del while.

Codice sorgente - presumibilmente Php

  1. while($rows = mysql_fetch_array($query)) {
  2.          foreach ($rows as $key => $value){
  3.              echo $value;
  4.         }                          
  5.     }



Ma a parte questo dettaglio tecnico, il design e' terribile, programmazione ad oggetti non significa prendere tutto quello che si puo' e buttarlo in un oggetto.

inanzitutto ti ringrnzio per la risposta ... ma scusa dici che nn è il caso di creare una funzione del genere? - giocala88 - 28/11/11 18:56
piero ha ragione, ha senso fare una classe "User" che contiene il cognome, il nome, ecc... poi internamente userà le query SQL, ma è inutile e dannoso fare una classe "Select" altrimenti non fornisci nessuna astrazione (che poi è lo scopo della OOP). - TheKaneB - 30/11/11 10:38


Il mio blog: https://piero.dev
PM
Avatar
Mte90 (Member)
Guru


Messaggi: 1144
Iscritto: 25/03/2008

Up
0
Down
V
Segnala al moderatore
Postato alle 17:02
Lunedì, 28/11/2011
se non mi sbaglio invece di passare cognome passa * (asterisco) dovrebbe prendere tutte le righe di quella tabella.

quello che dici è giusto, ma vale solo per la select e non per la stampa nel while ... lì bisogna definire tutti i nomi dei records ;) - giocala88 - 28/11/11 17:05
non ho mica scritto sql - Mte90 - 28/11/11 21:58
PM
Avatar
luigi7 (Normal User)
Pro


Messaggi: 83
Iscritto: 28/06/2011

Up
0
Down
V
Segnala al moderatore
Postato alle 13:48
Domenica, 04/12/2011
posso dare un consiglio ??


Perché non provi ad usare la libreria MySQLI a OOP invece di usare la normale mysql.

Che con mysqli  fai tutto oop. (Scusatemi se mi sbaglio).
http://php.net/manual/en/book.mysqli.php
ciao e buona domenica.

Ultima modifica effettuata da luigi7 il 04/12/2011 alle 13:54
PM