Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di marmo79
    Registrato dal
    Dec 2000
    Messaggi
    131

    oop e classe per database

    Sto approcciandomi alla programmazione ad oggetti e sto creando una classe che ,nelle mie intenzioni, mi permetta di leggere tutti i valori di una certa tabella solo impostando la query adatta.

    Impostata la connessione, ho poi questo metodo
    Codice PHP:
        private function esegui_query($query)
        {
            
    $rs mysql_query($query);
             
    $this->numfields mysql_num_fields($rs);
            
    $this->numrows mysql_num_rows($rs);
                for(
    $i 0;$i $numfields;$i++) {
                 
    $fieldname[$i] = mysql_field_name($rs$i);
            } 
    while (
    $row mysql_fetch_object($rs)) {
                    for(
    $i 0;$i $numfields;$i++) {
                    $
    $fieldname[$i] = $row->$fieldname[$i];
                    
    $this->valore[$i] = $$fieldname[$i];
                    
    $this->campo[$i] = $fieldname[$i];
                
    //    echo"[*]{$this->campo[$i]} {$this->valore[$i]}";
                            
    }
              
            }
        } 
    Ora, vorrei creare un metodo pubblico che mi possa permettere di formattare il risultato a seconda delle mie varie esigenze

    Codice PHP:
        public function lista_categorie(){
            
    $this->esegui_query('select * from categoria where id_principale=0 order by posizione');
            for (
    $count=0;$count<=$this->numrows;$count++){
                for (
    $i=0;$i<=$this->numfields;$i++){
    echo 
    "{$this->campo[$count]} = {$this->valore[$i]} 
    "
    ;
                }
            
            }        
        } 
    Ovviamente non va;con questo codice ottengo addirittura delle stringhe vuote mentre al massimo ero riuscito ad ottenere il valore dell'ultimo array e basta...come posso fare per ottenere quello che voglio?
    under costrussion

  2. #2
    ciao devi usare il return
    quando usi il $result con la query devi fare ritornare il $result cosi poi
    crei una nuova istanza e tipo fai $a = new classe()
    $b = $a->metodo();
    $b['id'];

  3. #3
    naaaa, lascia stare i return
    piuttosto nella dichiarazione dell'oggetto suggerisco di definire le 4 variabili che andrai ad usare, anche se non è strettamente necessario, ma credo dia chiarezza, quindi prima della funzione che esegue la query metterei nell'oggetto:

    var $numfields = 0;
    var $numrows = 0;
    var $valore = array ();
    var $campo = array ();
    l'errore comunque non sta qui ma invece dove vai a richiamare le due variabili numfields e numrows all'interno dell'oggetto, ovvero se le popoli, giustamente, così:

    $this->numfields = mysql_num_fields($rs);
    $this->numrows = mysql_num_rows($rs);
    poi devi sempre richiamarle con $this->numfields e $this->numrows, mentre invece nel tuo script un paio di volte usi erroneamente $numfields e $numrows, che avranno valore 0 ovviamente perchè sono variabili diverse.

  4. #4
    Utente di HTML.it L'avatar di marmo79
    Registrato dal
    Dec 2000
    Messaggi
    131
    Ragazzi vi ringrazio tanto, ma ho risolto da un paio di anni!
    under costrussion

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.