Listing 1 seul enregistrement

Résolu
cs_christuckers Messages postés 75 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 26 mars 2010 - 28 janv. 2009 à 09:36
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 - 29 janv. 2009 à 10:59
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

steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 1
28 janv. 2009 à 16:29
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...
3
cs_christuckers Messages postés 75 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 26 mars 2010
28 janv. 2009 à 16:45
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 ?
0
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 1
29 janv. 2009 à 10:35
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+
0
cs_christuckers Messages postés 75 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 26 mars 2010
29 janv. 2009 à 10:39
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>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
steph12358 Messages postés 149 Date d'inscription jeudi 22 avril 2004 Statut Membre Dernière intervention 10 décembre 2009 1
29 janv. 2009 à 10:59
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+
0