[php] nom d'une class dans une boucle
Résolu
diice
-
diice Messages postés 131 Date d'inscription Statut Membre Dernière intervention -
diice Messages postés 131 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- [php] nom d'une class dans une boucle
- Ajouter un nom dans une liste déroulante excel - Guide
- Nom de l'adresse - Forum Réseaux sociaux
- Trouver un nom avec une adresse - Forum Réseaux sociaux
- Nom sonnerie iphone - Forum iPhone
- Trouver un numéro de téléphone ou un nom ? - Forum Loisirs / Divertissements
3 réponses
bonjour,
oui j'ai trouvé une solution.
je me suis basé sur la solution de Anoen.
j'ai pas trouvé de class database qui me soit facilement compréhensible alors j'ai fait comme ça :
donc un fichier include j'ai ca : (connexion.php)
ensuite je crée ma class, par exemple une classe de news : (news.class.php)
et ensuite dans ma page d'affichage de news (news.php)
bon, je ne sais pas si c'est totalement optimiser, mais ca marche bien :)
bon courage !
et encore merci a tous pour l'aide, et désolé pour la réponse et solution tardive !
oui j'ai trouvé une solution.
je me suis basé sur la solution de Anoen.
j'ai pas trouvé de class database qui me soit facilement compréhensible alors j'ai fait comme ça :
donc un fichier include j'ai ca : (connexion.php)
######### CONNEXION A LA BDD define('SERVEUR','######'); define('USER','######); define('PASSSQL','######'); define('BASE','######'); $mysqli = new mysqli(SERVEUR, USER, PASS, BASE); if ($mysqli->connect_error) { die('Erreur de connexion (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); }
ensuite je crée ma class, par exemple une classe de news : (news.class.php)
class News { var $id; var $titre; var $contenu; var $image; var $url; function News($id,$titre,$contenu,$image,$url) { $this->id = $id; $this->titre = $titre; $this->contenu = $contenu; $this->image = $image; $this->url = $url; } function Afficher_News() { $affiche='<li>'; $affiche.=''; if (!empty($this->image)) { $width=RetailleImg("photos/".$this->image,'height',195); $affiche.='<img src="/photos/'.$this->image.'" width="'.$width.'" height="195" '.altitle(stripslashes($this->titre),0).' />'; } $affiche.='<h2>'.stripslashes($this->titre).icone('photo','/photos/upload.php?type=news&id='.$this->id).icone('supprimer','news.php?id='.$this->id.'&file=del').icone('modifier','news.php?id='.$this->id.'&file=mod').'</h2>'."\n"; $affiche.=AffTxt($this->contenu); if (!empty($this->url)) { $affiche.='<br /><br /><p><a href="'.$this->url.'"'; if (mb_eregi('http://',$this->url)) { $affiche.=' target="_blank"'; } $affiche.='>[+ d\'infos]</a></p>'; } $affiche.='</li>'."\n"; return $affiche; } }
et ensuite dans ma page d'affichage de news (news.php)
include("inc/Class/news.class.php"); $sql_news = "select * from TABLENEWS where ......."; $req_news = $mysqli->query($sql_news) or die('Erreur SQL news !<br />'.$sql_news.'<br />'.$mysqli->error); if ($req_news->num_rows) { while ($news = $req_news->fetch_assoc()) { $actu = new News($news['id_news'],$news['titre'],$news['contenu'],$news['image'],$news['url']); echo $actu->Afficher_News(); } // fin boucle } // fin si resultat ok $req_news->free();
bon, je ne sais pas si c'est totalement optimiser, mais ca marche bien :)
bon courage !
et encore merci a tous pour l'aide, et désolé pour la réponse et solution tardive !
Bonjour,
Ah enfin des questions intéressantes ^^
Alors ce que je fais moi c'est une classe qui possède toutes mes fonctions sql de base.
Par exemple (j'utilise que PDO) :
Ensuite comme toi je fais une classe "objet" et je l'extend à ma classe myDatabase.
Ainsi dans mon fichier "principal" j'ai plus qu'à faire :
Voilà j'espère que ça t'aidera. N'hésite pas à demander si des choses te paraissent floues, à force de travailler en objet je ne connais plus que ça. Le principe est toujours d'en faire le plus possible dans les classes "métier" (comme myDatabase ici) pour en avoir le moins à écrire dans les fichiers où on récupère et affiche le résultat final.
Ah enfin des questions intéressantes ^^
Alors ce que je fais moi c'est une classe qui possède toutes mes fonctions sql de base.
Par exemple (j'utilise que PDO) :
class myDatabase{ private $_id; private $_dbname; private ... etc .... //Fonction de select * public function fetchAll($nomtable){ $result = mysql_query("SELECT * FROM ".$nomtable); if(mysql_num_rows($result) != 0){ while($row=mysql_fetch_array($result)){ foreach($row as $key=>$value){ $returnValue[$key]=$value; } } }else{ $returnValues = ""; } return $returnValues; //Retourne un tableau ou vide } }
Ensuite comme toi je fais une classe "objet" et je l'extend à ma classe myDatabase.
class Amis extends myDatabase{ public $prenom; public $nom; etc.... public __construct() { $this->prenom=$prenom; $this->nom=$nom; } }
Ainsi dans mon fichier "principal" j'ai plus qu'à faire :
$amis = new Amis(); $listeAmis = $amis->fetchAll($nomtable); // Et l'affichage : if(!empty($listeAmis){ foreach($listeAmis as $amis){ echo $amis['nom']; echo $amis['prenom']; .... etc }else{ echo "Pas d'amis"; }
Voilà j'espère que ça t'aidera. N'hésite pas à demander si des choses te paraissent floues, à force de travailler en objet je ne connais plus que ça. Le principe est toujours d'en faire le plus possible dans les classes "métier" (comme myDatabase ici) pour en avoir le moins à écrire dans les fichiers où on récupère et affiche le résultat final.
<citation>Ah enfin des questions intéressantes ^^ </citation>
merci :) je me trouvai pourtant assez bete de poser ce genre de question ! :)
et en tout cas merci beaucoup !
ta proposition m'aide beaucoup en terme de compréhension du sujet, et en terme pédagogique. c tres clair !
je vasi essayer de me trouver ou de faire une petite class DataBase, et appliquerai ton exemple pour le reste .
je pense que je tiens le bon bout !
je reviendrai ici pour y mettre ma solution, ca peut toujours servir puisque je ne la trouve nulle part ailleurs !
merci encore !
merci :) je me trouvai pourtant assez bete de poser ce genre de question ! :)
et en tout cas merci beaucoup !
ta proposition m'aide beaucoup en terme de compréhension du sujet, et en terme pédagogique. c tres clair !
je vasi essayer de me trouver ou de faire une petite class DataBase, et appliquerai ton exemple pour le reste .
je pense que je tiens le bon bout !
je reviendrai ici pour y mettre ma solution, ca peut toujours servir puisque je ne la trouve nulle part ailleurs !
merci encore !