CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourHigh-Tech
    • Actus High-Tech
    • Hardware
    • Smartphones
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • High-Tech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Lier 2 tables sql ...

Aliojsa
Aliojsa
Niveau 9
05 novembre 2002 à 00:50:33

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 ?

jarose
jarose
Niveau 10
05 novembre 2002 à 10:01:14

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 : )
? >

jarose
jarose
Niveau 10
05 novembre 2002 à 10:10:24

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)

Aliojsa
Aliojsa
Niveau 9
05 novembre 2002 à 16:17:00

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 . ..

jarose
jarose
Niveau 10
05 novembre 2002 à 16:41:28

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 : )

Aliojsa
Aliojsa
Niveau 9
05 novembre 2002 à 16:59:53

ok : p
bonben je vais m´y mettre . ..
Merci!

leBoss
leBoss
Niveau 7
05 novembre 2002 à 19:30:55

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 ^^

electron_libre
electron_libre
Niveau 10
05 novembre 2002 à 22:49:49

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

Aliojsa
Aliojsa
Niveau 9
06 novembre 2002 à 00:05:12

ok, merci pour votre aide.
ça va me prendre du temps mais je suis confiant !
lol

leBoss
leBoss
Niveau 7
06 novembre 2002 à 13:19:27

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)"
^^

jarose
jarose
Niveau 10
06 novembre 2002 à 15:10:03

Ce que j´ai précisé aussi...

A croire qu´on lit pas mes post !

leBoss
leBoss
Niveau 7
06 novembre 2002 à 15:26:05

Jamais deux sans trois ^^.
Un homme averti en vaut deux ^^.

(mais kesske j´ai avec les proverbes en c´moment moé ? ^^ ^^)

electron_libre
electron_libre
Niveau 10
06 novembre 2002 à 20:13:50

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"

Aliojsa
Aliojsa
Niveau 9
07 novembre 2002 à 23:10:08

Bulletin d´information n°1:
je rame ; )
je regrette d´avoir fait l´impasse sur certains chapitres des cours de php ^^

Aliojsa
Aliojsa
Niveau 9
08 novembre 2002 à 23:19:32

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 . ..

jarose
jarose
Niveau 10
09 novembre 2002 à 09:56:59

Tu vas avoir du code incompréhensible alors, si même celui qui est commenté tu le pige pas... lol

Aliojsa
Aliojsa
Niveau 9
09 novembre 2002 à 11:32:57

c sur ^^
là je vois bien que j´ai pas le niveau pour faire mon truc tout seul, ça sera pour plus tard . ..

jarose
jarose
Niveau 10
09 novembre 2002 à 18:31:31

Si c´est pas trop long je peut te le faire : )

Aliojsa
Aliojsa
Niveau 9
11 novembre 2002 à 00:09:31

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 . ..
^____________^

Aliojsa
Aliojsa
Niveau 9
11 novembre 2002 à 23:49:16

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 . ..

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment