Newsgroup: it.comp.www.php
Titolo: classi e sottoclassi

Ciao a tutti,
sto realizzando un blog.
Ho creato 3 classi:
- Blog
- Post extends Blog
- Comment extends Post 
All'oggetto Blog passo un obj che si occupa di connessione al db.
Il Blog ha metodi per il recupero di più post e più comments,
Le sottoclassi recuperano informazioni su un solo post/comment.
Nella classe Blog ho questo metodo:
function getComments ($id_padre, $obj_post)
{
$query = "SELECT Id FROM BlogCommenti" ;
$query .= " WHERE idPadre=" . $id_padre ;
$query .= " ORDER BY data DESC";
..esegui query...
while ( ci sono risultati )
{
$obj_comment = new Comment ( $this->obj_db ) ;
$obj_comment->setIdComment ( $result [ 'Id' ] ) ;
$obj_comment->setIdPadre ( $obj_post->id_post ) ;
$obj_comment->getComment() ;
$obj_post->arr_comments [ $obj_comment->idComment ] = $obj_comment ;
}
return true ;
}
Tutto ok.. tranne che per la riga più importante, quella che recupera un
comment alla volta...$obj_comment->getComment() ... eccolo:
function getComment ()
	{
		$query = "SELECT * FROM BlogCommenti" ;
		$query .= " WHERE Id=" . $this->idComment ;
		$...esegui query...
		while ( ...ci sono risultati... )
		{
			$this->body = 	$result ['corpo'] ;
			$this->usr = 	$result ['usr'] ;
			$this->data = 	$result ['Data'] ;
		}
		return true ;
	}
Dopo il primo comment sembra che lo script si arresti... commentando
$obj_comment->getComment() ; tutto funziona ritornandomi
$obj_post->arr_comments con il giusto numero di elementi... 
secondo voi dov'é che sbaglio??
grazie a tutti!
;-)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Dopo il primo comment sembra che lo script si arresti...
in che senso, sembra che si arresti?
io ti consiglierei di usare un singleton per la classe dei commenti (e
probabilmente anche quella dei post)

 probabilmente anche quella dei post)
si arresta nel senso che, se ho 4 commenti, lo script ne "c arica" solo
uno, il primo.
non so quasi nulla del singleton pattern, sto leggendo qualcosa.
grazie


 - Comment extends Post 
Sono di corsa. Spero di riuscire a riprendere il post nei prossimi
giorni, ma IMHO non ha senso estendere le classi in questo modo.
Post e Comment dovrebbero essere classi a se` stanti, e al massimo
estendere una classe di astrazione di accesso al DB, ma non dovrebbero
estendere Blog o Post.
Bye.

 estendere Blog o Post.
Anche secondo me... non c'è nessuna attinenza logica che mi faccia 
pensare alla classe post come estensione della classe blog.... :|

 
Non è che usi "nuovamente" la variabile dove memorizzi il link ai risultati?
A volte a me capitava che se non usavo un link "memorizzato" all'interno
di cicli che interrogavano un db (ovviamente) alla ripresa del ciclo
esterno prendeva il link interno e quindi "usciva" non trovando risultati...

yess mann , in data 24/12/2006 13:35 :

Hmmm...ho guardato meglio lo script che hai fatto...
Sembra proprio che sia colpa della "confusione" con la variabile
$result...sai come risolverlo?Assegna il risultato di ogni query a una
variabile e il ciclo lo fai su queste variabili (anche temporanee vanno
bene) basta che siano specifiche della classe e non globali.
Dovresti risolvere :)

 bene) basta che siano specifiche della classe e non globali.
veramente e' esattamente quello che gia' fa
conviene piuttosto che posti il codice completo

 
No...lui assegna la stringa (sicuramente) della query a una
variabile...quel che fa per l'estrazione dei dati e dove finisca ilr
isultato non è dato saperlo perchè non ha messo il codice, quindi ho
SUPPOSTO che non lo memorizzasse...
Ma poi hai risolto, yesman?