Classe per estrapolare dati dal DB

Ragazzi, ho un problema...

class Categorie  
{  
   public function TutteCategorie()   
   {    
       $query = 'SELECT * FROM prova_categorie ORDER BY id DESC';   
       $GLOBALS['count_query']++;
      $result = mysql_query($query);
      if(mysql_num_rows($result) > 0)
      {
         while ($row = mysql_fetch_array($result)) 
         {
            print $row; 
         }
      }
      else print 'Non esistono categorie';   
   } 
}

Ho creato questa classe che mi stampa l'array $row

Andando a richiamare questa classe in un'altra pagina in questo modo

$cat = new Categorie();
$rows = $cat->TutteCategorie();
         echo $rows;

Ottengo giustamente, la scritta ArrayArray (perchè nella tabella prova_categorie vi sono solo due righe).

Come posso risolvere?

Vorrei gestire singolarmente gli array.

Faccio tutto ciò perchè la funzione TutteCategorie() voglio che mi faccia una query restituendomi i valori, quindi il mio obiettivo è non inserire HTML in quella funzione.

Quindi richiamarla in un secondo momento solo nella pagina che contiene l'HTML.

Grazie in anticipo

inviato 8 anni fa
Kaesar83
X 0 X

Ciao,

visto che i valori che ottieni sono Array ti consiglio di utilizzare il comando print_r sostituendolo al print.

 :bye:

Zeta

risposto 8 anni fa
zeta80
X 0 X

Ok zeta80, grazie per la risp...in questo modo ho gli array visualizzati per esteso, ma come faccio a prelevare i singoli valori per inserirli in una tabella (html), ad esempio?

Questo cmq è l'output

Array ( [0] => 2 [id] => 2 [1] => In regalo [nome] => In regalo [2] => [descrizione] => [3] => 1 [fatherid] => 1 [4] => 0 [isfather] => 0 [5] => 0 [num_annunci] => 0 ) Array ( [0] => 1 [id] => 1 [1] => Animali e Accessori [nome] => Animali e Accessori [2] => [descrizione] => [3] => 0 [fatherid] => 0 [4] => 1 [isfather] => 1 [5] => 0 [num_annunci] => 0 )
risposto 8 anni fa
Kaesar83
X 0 X

Come fai ad ottenere un risultato se in TutteCategorie()   non c'è una return?

risposto 8 anni fa
Gianni Tomasicchio
X 0 X

ma c'è un print...

Cmq ho risolto, posto la soluzione nel caso qualcuno fosse interessato.

public function TutteCategorie()   
   {    
       $query = 'SELECT * FROM prova_categorie ORDER BY nome ASC';   
       $GLOBALS['count_query']++;
      $result = mysql_query($query);
      if(mysql_num_rows($result) > 0)
      {
         $tmp = array();
         while ($row = mysql_fetch_array($result)) 
         {
            $tmp[] = $row; 
         }
         return $tmp;
      }
      else print 'Non esistono categorie';   
   } 

A questo punto il risultato è un array multidimensionale del tipo Array( Array(), Array()).

Quindi per prelevare i singoli valori faccio array[0]['nome'] e così via!

Grazie cmq per l'aiuto offerto  ;D

risposto 8 anni fa
Kaesar83
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda