Page 1 sur 1

changer le nom d'une class dans une boucle

Posté : 14 sept. 2011, 10:34
par sks
Bonjour
est il possible de changer le nom d'une class a l'interieur d'une bouble ??
une variable je marche pas ou je fais une erreur de syntaxe

ex :
<?php
$query = "select * from *** ";
$mysql_result = mysql_query($query,$mysql_link);
while ($rowU = mysql_fetch_row($mysql_result))
{
$numclass = $numclass + 1 ;
$classPdf = "PDF$numclass" ;
$image = $rowU[4] ;

class $classPdf extends FPDF
{
...............................
}
}
?>


Merci par avance

Re: changer le nom d'une class dans une boucle

Posté : 14 sept. 2011, 11:04
par Yosh
c'est quoi le but?

Re: changer le nom d'une class dans une boucle

Posté : 14 sept. 2011, 11:12
par Invité
le bute, c'est d'utiliser la class donc le contenu change a chaque boucle.
Si je garde le nom ça me donne un erreur (class deja declaré)

Re: changer le nom d'une class dans une boucle

Posté : 14 sept. 2011, 12:26
par xTG
#-o

Et l'héritage tu connais ? Je pense que ça sera mieux que ton micmac pas croyable...
Et ce qui change c'est quoi en fait ? Si ce ne sont que des données c'est pas la class qu'il faut modifier mais l'objet instancié !

Re: changer le nom d'une class dans une boucle

Posté : 14 sept. 2011, 17:20
par Invité
dsl l'héritage ne resous pas mon probleme

Re: changer le nom d'une class dans une boucle

Posté : 14 sept. 2011, 19:47
par xTG
Prenons le problème sous un autre angle dans ce cas...

C'est quoi ta problématique ? :roll:

Re: changer le nom d'une class dans une boucle

Posté : 03 janv. 2012, 04:55
par diice
Bonjour,

Je vois que ce message n'est pas terminé et j'ai le meme probleme !
je précise, que je viens tout juste de me mettre aux class php...

j'ai une class par exemple :

Code : Tout sélectionner

class Amis { public $prenom; public $nom; etc.... public __construct() { $this->prenom=$prenom; $this->nom=$nom; } }
et j'ai mes Amis dans une BDD, table 'amis' avec id, prenom et nom...

comment j'affiche mes resultats via une requete sql et avec la classe ???

Code : Tout sélectionner

// include connexion sql $sql_amis = "SELECT * FROM amis order by nom asc"; $req_amis = $mysqli->query($sql_amis) or die('Erreur SQL amis !<br />'.$sql_amis.'<br />'.mysqli_error()); if (!$req_amis->num_rows) { echo '<p class="alerte">il n\'y a pas d\'amis</p>'; } else { $row_amis = $req_amis->fetch_assoc(); while ($row_amis = $req_amis->fetch_assoc()) { $amis= new Amis(); echo $amis->nom.' '.$amis->prenom.'<br />; } }
du coup le $amis ne va pas s'incrémenter a chaque amis de la requete ???
comment ca se passe a ce niveau ?

je trouve pas ce que je veux sur google (a part ce forum). a chaque fois c des class de connexion, ou des exemples de pizza ou de voiture mais sans base de données.

merci d'avance pour l'aide :)

Re: changer le nom d'une class dans une boucle

Posté : 03 janv. 2012, 09:38
par moogli
salut,

deux choses :
- si tu instancie ta classe "amis" tu va voir une erreur car $prenom et $nom n'existe pas dans le constructeur
public __construct() {
$this->prenom=$prenom;
$this->nom=$nom;
}

- dans ton utilisation de la requete SQL tu n'exploite pas les informations fournis par mysql
while ($row_amis = $req_amis->fetch_assoc()) {

$amis= new Amis();
echo $amis->nom.' '.$amis->prenom.'; // totalement inutile car forcément null

}

dans $row_amis tu tes nom et prénom récupéré par la requête SQL.

Après il faut savoir ce que tu souhaite pour aller plus loin.

ta classe amis définie comme telle répertorie UN un seul amis, il le caractérise. La c'est plus au sens d'une personne.
si tu veux tous les amis d'une personne, il te faudra gérer une "collection" d'amis (par tableau, ou via un objet (qui par exemple implémente l'interface itérator ;) )

1ère chose à faire : modifier ton constructeur afin de pouvoir initialiser ta classe.
public __construct(array $info) {
$this->prenom=$info['prenom'];
$this->nom=$info['nom'];
}

je te laisse le soin de vérifier la présence ou non des indexes et de traiter l'erreur correctement (via les exception par exemple).

tu peux aussi :
- Revoir l'utilisation des fonctions et le passage de paramètre (c'est le même principe pour les méthodes)
- trouver un cour sur le modèle objet afin de mieux appréhender la chose pour "modéliser" au mieux ton application ;)

@+

Re: changer le nom d'une class dans une boucle

Posté : 04 janv. 2012, 10:59
par diice
Merci beaucoup Moogli,

Effectivement, j'ai ajouté les parametres dans le constructeurs... c mieux comme ça :)

et je vais suivre tes autres conseils, bien me pencher sur tout ça, faire des tests...
je viendrai mettre ma solution quand je l'aurai trouvé :)
merci encore de ton aide !

Re: changer le nom d'une class dans une boucle

Posté : 04 janv. 2012, 23:30
par moogli
Mais de rien ;)

Bon courage


@+