Pour la nvelle version de mon site je voudrais faire un système de news utilisant MySql (comme sur le site de leBoss je crois : )
Pour ça je veux faire une table avec la news proprement dite, et aussi une table (auto increment) avec les commentaires.
Comment fait on pour etablir une relation entre les deux tables ?
Les exemples de sqlfacile me parlent pas trop je dois dire : SELECT * FROM films,categories WHERE film.categorieid=categories.id
Personne veut m´envoyer un exemple de news utilisant mySql ?
Tu veux afficher les nombre de commentaires pour une en fait ?
Si c´est ça :
<?
-->Connection à la bdd
$req = mysql_query($sql) or die(´Erreur SQL ! <br>´.$sql.´<br>´.mysql_error());
{
$sql="SELECT * FROM news";
}
$q=mysql_query($sql,$db) or die(mysql_error());
if(mysql_num_rows($q)>0)
{
while($r=mysql_fetch_object($q))
{
$req = mysql_query("SELECT * FROM Table_Commentaires WHERE id_du_message=´$r->id´") or die(´Erreur SQL<br>´.$sql.´<br>´.mysql_error());
$nbr = mysql_num_rows($req);
if($nbr>1)
$Affichage_comment = "$nbr commentaires";
if($nbr<1)
$Affichage_comment = "aucun commentaire";
if($nbr=1)
$Affichage_comment = "1 commentaire";
// ici tu vas afficher tes resultats ex :
echo ´Titre : ´.$r->champ_titre.´<br>Contenu : ´.$r->champ_texte.´
// etc...
Il y a ´.$Affichage_comment.´
//Ceci va afficher les commentaires : )
´; //Fin de l´aff
}
} // et on oublie pas les 2 boucles : )
? >
le --> $req = mysql_query("SELECT * FROM Table_Commentaires WHERE id_du_message=´$r->id´")
$nbr = mysql_num_rows($req); <--
Doit impérativement être dans la boucle (while)
Si par exemple tu veux afficher d´autres champ, c´est pas bien dur...tu trouveras par toi même (enfin j´éspères...:D)
ouch voila de quoi me donner la migraine à tous les coups : )
Le pb avec cette façon de faire c´est que les 2 tables (´news´ et ´commentaires´) ne sont pas liées l´une à l´autre et si je fais plusieurs news (ce qui sera le cas evidemment) j´aurais à chaque fois les memes commentaires sur chaque news au lieu d´un nouvel enregistrement . ..
hé non : )
$req = mysql_query("SELECT * FROM Table_Commentaires WHERE id_du_message=´$r->id´") or die(´Erreur SQL<br>´.$sql.´<br>´.mysql_error());
FROM Table_Commentaires WHERE id_du_message=´$r->id´
Dans ta table commentaire tu dois mettre un champ avec l´id de la news : )
ok : p
bonben je vais m´y mettre . ..
Merci!
Une explication texte pour t´aider ? ^^
<?
Je me connecte à mySQL
Je choisis dans la table news la news correspondant à l´id passé dans l´URL
Je fais ma boucle pour afficher les resultats
{
J´affiche ma news
La, je choisis dans la table commentaires tous les commentaires qui ont pour valeur du champ nid (ou autre, à savoir que ce champ contient l´id de la news à laquelle correpondent les commentaires) l´id de la news affiché (WHERE nid=´$r->id´)
Je fais ma boucle
{
J´affiche les commentaires
Je ferme la boucle des commentaires
}
Je ferme la boucle des news
}
? >
Pour mieux t´y retrouver avec tes variables, nomme les différemment selon la requete que tu traite, pour les news (le "n" fait reference à News) :
$nreq = "SELECT * FROM news WHERE id=´id´";
$nsql = mysql_query($nreq) or die(´Erreur SQL<br>´.$nsql.´<br>´.mysql_error());
while($nr=mysql_fetch_object($nreq)
{
? >
BLablabla
<?
}
? >
Tu vois ? Puis pour les commentaires, tu fais pareil sauf que tu changes le "n" en "c" (pour faire référence au mot Commentaires).
Si jamais t´as b´soin d´aide, chu la ^^
ce qu´il faut quand tu crés ta table commentaire c de ne pas oublier une colonne dont le type sera le meme que celui de la clé primaire de la table news, afin de pouvoir les lier
ok, merci pour votre aide.
ça va me prendre du temps mais je suis confiant !
lol
electron_libre => Oué, c´est ce que j´avais précisé dans "(ou autre, à savoir que ce champ contient l´id de la news à laquelle correpondent les commentaires)"
^^
Ce que j´ai précisé aussi...
A croire qu´on lit pas mes post !
Jamais deux sans trois ^^.
Un homme averti en vaut deux ^^.
(mais kesske j´ai avec les proverbes en c´moment moé ? ^^ ^^)
leBoss dsl, mais quand j´avais commencé à taper mon post, à la fin j´avais mis un exemple de tables, et puis je l´ai viré, et comme je venais de me logguer . .. je me suis: "ho et puis merde, j´envoie ca"
Bulletin d´information n°1:
je rame ; )
je regrette d´avoir fait l´impasse sur certains chapitres des cours de php ^^
Bon je vais vous decevoir là mais j´ai vraiment du mal à faire ce truc.
Je vais m´aider d´un script de news tout fait histoire de mieux comprendre.
Vous me direz "ça vaut pas un moteur fait maison", mais c´est une bonne façon d´apprendre je pense . ..
Tu vas avoir du code incompréhensible alors, si même celui qui est commenté tu le pige pas... lol
c sur ^^
là je vois bien que j´ai pas le niveau pour faire mon truc tout seul, ça sera pour plus tard . ..
Si c´est pas trop long je peut te le faire : )
c sympa, j´aurais peut etre besoin d´aide plus tard je te dirais.
Là j´ai installé un script (Mynews.Il a un système de commentaires, une admin simple et des archives, tt ce que je voulais faire : ) ) et je l´adapte à mon site autant que possible.
c cool parcequ´il y a plein de commentaires au milieu donc j´apprends un peu en meme temps . ..
^____________^
j´ai presque terminé et je suis bien content de ce petit script.
http://cybermhsc.phpnet.org/indextest.php
Peut etre que dans quelques mois je pourrais faire mes propres scripts . ..