Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934

    Ancora problema con classi e cicli

    Ciao a tutti.

    Premetto che non ne sò molto di OOP.

    Ho un problemuzzo.

    Ho fatto una classe che dovrebbe estrarmi una serie di dati.

    quindi ho un ciclo while:
    codice:
    public function lista_progetti()	{
    $qry = mysql_query("SELECT
    id_progetto,
    codice_cliente
    
    FROM
    progetti.lista_progetti
    ");
    
    // ciclo while per estrarre																while($row = mysql_fetch_array ($qry))    {
    $lista=	"<tr>
    																			 	<td>$row[id_progetto]</td>
    																				<td>$row[codice_cliente]</td>
    																																								</tr>
    																			";
    																return $lista;
    																}
    							
    }
    Richiamo la classe
    codice:
    $lista_progetti_in_essere=new ufficio_pareti();	
    echo $lista_progetti_in_essere->lista_progetti();
    Problema... mi legge solo la prima riga.
    probabilmente è un problema concettuale.

    Mi spiegate l'errore?

    Ale

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    l'oop non c'entra. Devi semplicemente mettere il return fuori dal ciclo while. Il return termina immediatamente la funzione relativa, e quindi, nel tuo caso, viene eseguito solo il primo giro del ciclo.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Ho messo il return fuori dal ciclo. adesso invece della prima, mi da solo l'ultima riga.

    Ale

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Il ciclo devo metterlo in un array e poi ritirarlo fuori?

    é questa la procedura migliore?

    Ale

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    non visualizzo bene il tuo codice ma prova così:

    prima del while metti

    $lista = "";

    all'interno del while anzichè scriverete $lista = "<tr> ecc....", metti

    $lista .= "<tr> ecc.....";

    in questo modo concateni ogni riga del while alla variabile $lista creata prima del ciclo; a fine ciclo avrai la variabile $lista con tutti i record interessati.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    539
    ah ovviamente il return lo fai al di fuori del while...
    il processo è:

    - ti credi la variabile $lista prima del while
    - fai un ciclo while e ad ogni passaggio del ciclo concateni a $lista i valori che ti servono
    - alla fine del ciclo (quindi al di fuori del while) fai un return $lista;

  7. #7
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    E' perche' assegni un valore alla variabile $lista ad ogni giro del ciclo, riscrivendo quello precedente. Se ho capito bene, la tua $lista deve contentere tutte le righe. In tal caso, fai 2 cose:
    1. Dichiara la variabile vuota $lista prima del ciclo, ad esempio $lista = '';
    2. Usa l'operatore .= al posto di = al interno del ciclo, cioe $lista .= "<tr> [....]

  8. #8
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    ops, scusa freeman, non avevo visto che avevi gia' risposto

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 © 2025 vBulletin Solutions, Inc. All rights reserved.