Listing 1 seul enregistrement

[Résolu]
Signaler
Messages postés
75
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
26 mars 2010
-
Messages postés
149
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
10 décembre 2009
-
Amis CSistes, bien le bonjour.....

J'ai posé une question hier après midi, par rapport à la fonction INNER JOIN, qui n'est apparament pas disponible sur mon serveur.

J'ai donc choisis une autre astuce, celle de relier les tables par des variables.

Petit rappel des faits.

J'ai une table evenement, events, et trombinoscope :
- evenement : id_evenement, nom, lieu, date et heure
- events : ide, iduser, ideve
- trombinoscope : id, nom, prenom, mobile.....

Je souhaite voir dans la page de détail d'un évenement, la description de l'evenement, et les personnes inscrites à cet evenement.

Voici donc mes premiers codes :


<? include 'config.php' ?>
<? if (isset ($_GET['id_evenement'])) { $id_evenement = $_GET['id_evenement']; } else { $id_evenement = ''; } ?>
<? $query = "SELECT * FROM evenement WHERE id_evenement='$id_evenement' LIMIT 1" ;
   $result = mysql_query($query) or die(mysql_error()));
  $nb_result = mysql_num_rows($result);
  while($row = mysql_fetch_array($result))
{ $id_evenement= $row['id_evenement'];
$nom_ev= $row['nom_ev'];
$lieu= $row['lieu'];
$date= $row['date'];
$heure= $row['heure'];
$resume= $row['resume'];
}?>


Jusque la, tout va bien, dans mon code HTML, j'ai bien recuperer toutes les informations que je voulais.

La difficulté arrive lorsque je souhaite voir afficher les personnes qui vont y participer.
Je décide donc de faire afficher la table events et les enregistrements correspondant :


<? $query = "SELECT * FROM events WHERE ideve='$id_evenement'" ;
   $result = mysql_query($query) or die(mysql_error()));
  $nb_result = mysql_num_rows($result);
  ?>
...
<? $color=array('#EFF6FD','#E0E2E4'); // le tableau avec les 2 couleurs



$i=0; //on initialise le compteur à 0 
while($row = mysql_fetch_array($result))
{ $ide= $row['ide'];
$ideve= $row['ideve'];
$iduser= $row['iduser'];
?>



Cette table la s'affiche bien, les numéros des différents s'affichent correctement.
Mais lorsque je souhaite relier celle-ci à la table trombinoscope, seul l'enregistrement le plus récent s'affiche :


<? $query = "SELECT * FROM trombinoscope WHERE id='$iduser'" ;
   $result = mysql_query($query) or die(mysql_error()));
  $nb_result = mysql_num_rows($result);
  ?>
...
<? $color=array('#EFF6FD','#E0E2E4'); // le tableau avec les 2 couleurs






$i=0; //on initialise le compteur à 0 
while($row = mysql_fetch_array($result))
{ $id= $row['id'];
$prenom= $row['prenom'];
$nom= $row['nom'];
$promotion= $row['promotion'];
$mobile= $row['mobile'];
$position= $row['position'];
$company= $row['company'];
$activite= $row['activite'];
$mailpro= $row['mailpro'];
$date= $row['date'];
$nationalite= $row['nationalite'];
?>


Ma question est :




Ais-je fais une erreur de raisonnement qui m'empeche d'afficher tous les enregistrements désirés
ou bien une erreur dans mon code me dis d'afficher qu'un seul enregistrement ?

Merci de votre aide

5 réponses

Messages postés
149
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
10 décembre 2009

Salut

peut-être en faisant une seule requête avec des equijointures

qque chose comme ça ?
"
SELECT * FROM evenement,events, trombinoscope  WHERE
id_evenement='$id_evenement'
AND evenement.id_evenement = events.ide
AND events.idusr = trombinoscope.id
"

Evidemment ça ne te ramenera que les lignes pour lesquelles tous les éléments sont liés...
Messages postés
75
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
26 mars 2010

Oulalala, je me dis que j'y étais presque et que j'ai failli abondonner.

Merci beaucoup !!!!! je ne saurais comment te remercier !!!

-----Question subsidiaire------

Pourquoi cette requete avec INNER JOIN table ON ne fonctionnait pas ?
Messages postés
149
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
10 décembre 2009

Salut christuckers

content d'avoir pu t'aider
inner joign, à priori c'est du mysql (3.23 ou plus) ou de l'oracle (à partir de 9)

Tous les sgbdr (et selon leur version) ne supportent pas l'inner joign...ex: postgre , sauf erreur de ma part...

Tu utilises quoi comme sgbdr ?

A+
Messages postés
75
Date d'inscription
jeudi 27 juillet 2006
Statut
Membre
Dernière intervention
26 mars 2010

Euhhh, ceci peut t'aider ?
mysql5-5





<li id="li_server_info">Version du serveur: 5.0.68-log
</li>
<li id="li_mysql_proto">Version du protocole: 10
</li>
<li id="li_server_info">Version du client MySQL: 5.0.32
</li>
<li>Extensions PHP utilisées: mysql</li>
Messages postés
149
Date d'inscription
jeudi 22 avril 2004
Statut
Membre
Dernière intervention
10 décembre 2009

Bizarre ça devrait marcher pourtant mais il est vrai que je n'ai pas testé et  n,'ai pas vu ton post précédent...

Pour les relations j'en reste au bon vieux signe "=" pour mes relations, tant que je ne dois pas faire de jointure externe...

A+