cs_eric21000
Messages postés13Date d'inscriptionmercredi 16 avril 2008StatutMembreDernière intervention27 novembre 2011
-
27 nov. 2011 à 10:57
cs_eric21000
Messages postés13Date d'inscriptionmercredi 16 avril 2008StatutMembreDernière intervention27 novembre 2011
-
27 nov. 2011 à 15:16
Bonjour
Je récupère dans une table toutes mes randonnées.
Parfois elles sont classées par type (Plat, montagne ...)
je n'arrive pas a utiliser la variable pour récupérer le type de randonnée
Voici le script
$req = mysql_query("SELECT ridentifiant wid, .......
rtyid wtyid
FROM randonnee
where date_format(rdate,'%m')='11'
and date_format(rdate,'%Y')='2011'
order by rdate")
or die ("Erreur requete: ".mysql_error());
$req2 mysql_query("SELECT tynom wtynom from type_randonnee where tyid '". $donnee[wtyid]."'");
Puis
<?php if (strlen($donnee[wtyid]) > 0 ) { echo 'Type de parcours de prevu '; echo $donnee[wtyid] ; $result = mysql_fetch_array($req2); echo $result[wtynom];} ?>
Le echo echo $donnee[wtyid] fonctionne bien (il me sert de test ) mais le echo $result[wtynom]; ne ramène rien
J'ai surement une erreur de syntaxe mais je ne vois pas
cs_eric21000
Messages postés13Date d'inscriptionmercredi 16 avril 2008StatutMembreDernière intervention27 novembre 2011 27 nov. 2011 à 12:23
SAlut
Rtyid int de 2 dans randonne et
Tyid int de 2 dans type_randonnee
et c'est la partie $result = mysql_fetch_array($req2); echo $result[wtynom];} ?> qui ne fonctionne pas
si je mets la valeur 1 dans la requête
$req2 mysql_query("SELECT tynom wtynom from type_randonnee where tyid '". $donnee[wtyid]."'");
a la place de '". $donnee[wtyid]."' cela fonctionne très bien
par contre le echo $donnee[wtyid] fonctionne très bien donc j'ai bien la valeur
<?php if (strlen($donnee[wtyid]) > 0 ) { echo 'Type de parcours de prevu '; echo $donnee[wtyid] ; $result = mysql_fetch_array($req2); echo $result[wtynom];} ?>
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 27 nov. 2011 à 12:34
Écoutes, ce n'est pas en donnant les infos au compte-gouttes que tu vas obtenir de l'aide. Soit tu met tout ce qu'il faut soit tu cherches tout seul dans ton coin, c'est toi qui vois. On te demande de décrite les tables que tu utilises ? Tu ne passe que le nom et le type de 2 champs au total alors qu'il y en a bien plus et tu n'explique pas la relation qu'il y a entre les deux tables. On te demande tout le code concerné ? Tu ne fais que donner une ligne de plus. Et en plus de ça le peu de code que tu passe est dans tous les sens, on dois jouer au puzzle pour remettre tout à sa place. Alors stp, cette fois met tout ce qu'il faut.
cs_eric21000
Messages postés13Date d'inscriptionmercredi 16 avril 2008StatutMembreDernière intervention27 novembre 2011 27 nov. 2011 à 12:54
Désole pour le moanque d'info
type_randonnee
Commentaires sur la table: Type de randonnee ou de parcours
Colonne Type Null Défaut Commentaires
tyid int(2) Non
tynom varchar(25) Non
randonnee
Commentaires sur la table: table des randonnees
Colonne Type Null Défaut Commentaires
ridentifiant int(11) Non identifiant de la randonnee
rdate date Non
rnom varchar(50) Non
rdistance varchar(40) Oui NULL
rlieu varchar(40) Non
rville varchar(50) Non
rnomlien1 varchar(20) Oui NULL
rlien1 varchar(100) Oui NULL
rnomlien2 varchar(20) Oui NULL
rlien2 varchar(100) Oui NULL
rhoraire1 varchar(40) Oui NULL
rhoraire2 varchar(40) Oui NULL
rhoraire3 varchar(40) Oui NULL
rhoraire4 varchar(40) Oui NULL
rnomparcours1 varchar(100) Oui NULL
rlienparcours1 varchar(150) Oui NULL
rnomparcours2 varchar(100) Oui NULL
rlienparcours2 varchar(150) Oui NULL
rtyid int(2) Oui NULL lien avec Type de parcours tyid
rinscription int(1) Oui NULL 1 Groupe 2 Nbr de KM 3 Pas d'inscription
rnomlien3 varchar(100) Non
rlien3 varchar(100) Non
rinscrip1 varchar(15) Oui NULL
rinscrip2 varchar(15) Oui NULL
rinscrip3 varchar(15) Oui NULL
rinscrip4 varchar(15) Oui NULL
rinscrip5 varchar(15) Oui NULL
Le lien entre randonnée et type_radonnéée
de randonnée rtyid int(2) Oui NULL lien avec Type de parcours tyid (Présent ou non)
Tous les parcours n'ont pas obligatoirement un type.(cardinalité (0,1)
La requete que j'utilise pour recupérer les les randonnées
$req2 mysql_query("SELECT tynom wtynom from type_randonnee where tyid '". $donnee[wtyid]."'");
Le requete pour recuperer les types.
je recupere bien dans une boucle
while($donnee = mysql_fetch_array($req)){.....
L'ensemble des randonnées
Je vérifie si elle à un type dans ce cas je veux récuperer le type de randonnée
<?php if (strlen($donnee[wtyid]) > 0 ) { echo 'Type de parcours de prevu '; echo $donnee[wtyid] ; $result = mysql_fetch_array($req2); echo $result[wtynom];} ?>
Le echo de echo $donnee[wtyid] fonctionne bien.
Si la radonnée à un type j'ai le chiffre.
Par contre après l'execution de $result = mysql_fetch_array($req2); je n'ai pas le libelle du type de randonnée.
le echo $result[wtynom]; ne ramène rien.
Si je met une valeur fixe 1 par exemple dans le select cela fonctionne.
Vraiment désolé si je ne suis pas assez préçit
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 27 nov. 2011 à 13:52
Ok, super pour les infos sur la base de donnée. Cependant, poru ce qui est du php, tu n'as toujours pas mis totu le code nécessaire. Vu tes noms de variable il se peut qu'il y ait une erreur bête d'écrasement d'une variable apr une autre ou autre chose de ce genre, alors stp, met tout ton code concernant le sujet. Avec simplement les extraits que tu met il est impossible de déceler une grande partie des erreurs possibles.
// EXEMPLE //
//echo DateComplete('2008-04-18 10:52:48');
?>
<?php // --- Fin Entete html ---
// Requête pour prendre tout les messages
$req = mysql_query("SELECT ridentifiant wid,
rdate wdate,
rnom wnom ,
rdistance wdistance,
rlieu wlieu,
rville wville,
rlien1 wlien1,
rnomlien1 wnomlien1,
concat(rlien2,'?','wid=',ridentifiant) wlien2,
rnomlien2 wnomlien2,
rhoraire1 whoraire1,
rhoraire2 whoraire2 ,
rhoraire3 whoraire3 ,
rhoraire4 whoraire4 ,
rnomparcours1 wnomparcours1,
rlienparcours1 wlienparcours1,
rnomparcours2 wnomparcours2,
rlienparcours2 wlienparcours2,
rinscription winscrip,
rnomlien3 wnomlien3,
concat(rlien3,'?','wid=',ridentifiant) wlien3,
rinscrip1 inscrip1,
rinscrip2 inscrip2,
rinscrip3 inscrip3,
rinscrip4 inscrip4,
rinscrip5 inscrip5,
rtyid wtyid
FROM randonnee
where date_format(rdate,'%m')='11'
and date_format(rdate,'%Y')='2011'
order by rdate")
or die ("Erreur requete: ".mysql_error());
$req2 mysql_query("SELECT tynom wtynom from type_randonnee where tyid '". $donnee[wtyid]."'");
// $req2 mysql_query("SELECT tynom wtynom from type_randonnee where tyid '1'");
// On prend toutes les valeurs de la requete pour les mettre dans un tableau fetch_array en boucle while
if(mysql_num_rows($req) <1){ echo 'Pas de randonnee ce mois';
}
else{
while($donnee = mysql_fetch_array($req)){
// Sortie du résultat ?>
<td align= "left">
<?php echo $donnee[wnom]; ?>
<?php echo ($donnee[wdistance]); ?>
<?php echo ($donnee[wlieu]); ?>
<?php echo ($donnee[wville]); ?>
<?php if (strlen($donnee[wtyid]) > 0 ) { echo 'Type de parcours de prevu '; echo $donnee[wtyid] ; $result = mysql_fetch_array($req2); echo $result[wtynom];} ?>
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 27 nov. 2011 à 14:19
Et bien voila !
Comme on peux enfin le constater, au moment où tu fais te seconde requête, $donnee n'est pas initialisée. Il faut que tu fasses cette seconde requête dans la boucle et non pas avant.
cs_eric21000
Messages postés13Date d'inscriptionmercredi 16 avril 2008StatutMembreDernière intervention27 novembre 2011 27 nov. 2011 à 14:36
echo 'Type de parcours de prevu '; echo $donnee[wtyid] ; $result = mysql_fetch_array($req2); echo $result[wtynom];} ?>
juste avant de faire la requête $result
TychoBrahe
Messages postés1309Date d'inscriptionsamedi 31 janvier 2009StatutMembreDernière intervention 5 juin 201312 27 nov. 2011 à 14:44
Oui, et le problème c'est que ta requête n'est pas faite à cet endroit là. Elle est fait bien avant la boucle. Il te suffis de déplacer cette requête juste là où tu fais ton echo et ce sera bon.