PHP et POO: problème de débutant^^

Résolu/Fermé
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 14 mars 2008 à 15:32
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 6 juin 2008 à 15:33
Bonjour,

Je code en php depuis quelques mois déjà, mais j'ai jamais réussi à convenablement me familiariser avec la POO. J'essais de me repencher sur la question, en adaptant cette méthode à la création d'un système de messages privés, mais mon code ne fonctionne pas. Quelqu'un pourrait il me dire où j'ai fauté?

class note {

public $titre;
public $statut;
public $date;
public $texte;
public $exp;
public $dest;

if($statut=="nouveau")
{
?>
<li style="background-color:teal"><?php echo $this->titre; echo $this->date; echo $this->exp; ?></li>
<?php
}else{
?>
<li><?php echo $this->titre; echo $this->date; echo $this->exp; ?></li>
<?php
};

};//fin de la classe


$sql="SELECT * FROM box ";
$query=mysql_query($sql);
while($callNote=mysql_fetch_array($query))
{
$note=new note();
$note->exp=$callNote['exp'];
$note->dest=$callNote['dest'];
$note->date=$callNote['date'];
$note->titre=$callNote['titre'];
$note->statut=$callNote['statut'];
$note->texte=$callNote['texte'];
};
A voir également:

7 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
14 mars 2008 à 15:53
salut,

je vais pas te répondre complètement.

ta classe est un bout de code indépendant du reste et qui sert principalement à effectuer des taches répétitives.
c'est le gabarit de ton objet.
un objet à des propriétés et des méthodes que tu appelleras d'un autre script.
les propriétés, mieux vaut les garder "private" et les lire/écrire avec les méthodes ad-hoc 'getPropriete()', 'setPropriete( $value )'.

dans ton cas, le plus simple est d'attribuer toutes les valeurs des propriétés en les passant au constructeur (c'est la méthode utilisée par 'new').

ensuite tu appelles une méthode de ta classe qui enverra les infos sous forme de HTML.

je suppose que tu vas être un peu perdu avec ce que je t'écris, regarde le source suivant et dis moi si tu t'y retrouves.
<?php
class note {
	private $titre;
	private $statut;
	private $date;
	private $texte;
	private $exp;
	private $dest;

	public function __construct( $titre , $statut , $date , $texte , $exp , $dest )
	{
		$this->titre = $titre;
		$this->statut = $statut;
		$this->date = $date;
		$this->texte = $texte;
		$this->exp = $exp;
		$this->dest = $dest;
	}

	public function output()
	{
		if( $this->statut === 'nouveau' )
		{
			echo '<li>'.$this->titre.' '.$this->date.' '.$this->exp.' '.'</li>';
		}
		else
		{
			echo '<li style="background-color:teal">'.$this->titre.' '.$this->date.' '.$this->exp.' '.'</li>';
		}
	}
}
?>
<?php
// AUTRE SCRIPT
$sql="SELECT * FROM box ";
$query=mysql_query($sql);
while($callNote=mysql_fetch_array($query))
{
	$note = new note( $callNote['titre'] , $callNote['statut'] , $callNote['date'] , $callNote['texte'] , $callNote['exp'] , $callNote['dest'] );
	$note->output();
}

0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
14 mars 2008 à 15:59
Hoy^^

Le code ne me paraît pas trop hermétique :) ;) j'devrais m'y retrouver quand je pourrais m'y pencher un peu plus sérieusement^^ en tous les cas, merci pour les explications et la modification :)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
14 mars 2008 à 16:03
oki.

au passage, j'ai retrouvé ce tuto, c'est pour PHP4 mais les bases sont là.

au fait, es-tu passé à PHP5 ?
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
14 mars 2008 à 16:07
J'y suis passé oui^^ et j'ai l'impression que l'envoi de ma dernière réponse a zappé les remerciements^^ alors je réitère, merci pour les explications :D le coup de main, et le tuto ;) :) et en parlant de ce dernier, j'ai un bouquin sur php5, c'est avec lui que j'ai appris, mais la section POO est plutôt obscure. Ceci dit, le tuto combiné au bouquin devrait pouvoir me permettre de bien intégrer tout ça ;)

Cheers!
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
14 mars 2008 à 16:12
oki !
tiens nous informés stp et ferme le fil si tu t'y retrouves !
-;o)

à plus tard et bon courage pour la suite !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
16 avril 2008 à 18:51
Problème résolu, m'suis mis à la POO comme un fou^^ mon petit système de messagerie privé permet même une actualisation en direct via Ajax, ça fonctionne super bien ;)

Merci encore et à plus :)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
16 avril 2008 à 19:01
salut,

eh ben voila !!!
je souhaite un bon gros trafic à ton site et bonne continuation à toi !
(^_^)
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58 > Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016
15 mai 2008 à 18:43
Ptdr :D merci :) bonne continuation à toi aussi ;) :)
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
15 mai 2008 à 18:45
*j'ai oublié de fermer le fil*


...*ferme le fil*
0
Sur la POO avec PHP ;

que ce soit en PHP4 ou PHP5 ; il y as aussi ce turoriels destiné à l'Introduction à la POO avec PHP.
0
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
6 juin 2008 à 15:33
merci! :)
0