[PHP/MYSQL] Afficher une jointure
Résolu/Fermé
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
-
28 févr. 2007 à 11:48
liliana23 - 17 avril 2008 à 18:38
liliana23 - 17 avril 2008 à 18:38
A voir également:
- [PHP/MYSQL] Afficher une jointure
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
- Afficher mot de passe wifi android - Guide
- Afficher appdata - Guide
- Afficher taille dossier windows - Guide
22 réponses
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 mars 2007 à 12:35
1 mars 2007 à 12:35
Bonjour,
Alors, deux choses.
1 : afficher le lien.
Dans ton code, au moment où tu génères les lignes, mets ça :
Modifie ta requête comme ceci :
Xavier
Alors, deux choses.
1 : afficher le lien.
Dans ton code, au moment où tu génères les lignes, mets ça :
foreach($ligne as $valeur) { echo "<td> $valeur </td>"; } echo "<td><a href='contrat.php?id_etudiant=".$ligne['id']."'>voir contrat</a></td>"; echo "</tr>"; } echo "</table>";2 : permettre à la page de ta jointure de n'afficher les données que pour 1 étudiant.
Modifie ta requête comme ceci :
$requete3="SELECT nom, prenom, id_contrat, datedebut, datefin, salairebrut, typecontrat, dureeperiodeessai, emploiprecisoccupe, dureehebdomadaire, caissederetraitecomplementaire, organismedeprevoyance FROM etudiant, contrat WHERE contrat.id_etudiant = etudiant.id_etudiant"; if (isset($_GET['id_etudiant'])) $requete3 .= " AND etudiant.id_etudiant='".$_GET['id_etudiant']."'"; $result=@mysql_query($requete3,$idcom);
Xavier
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
28 févr. 2007 à 16:26
28 févr. 2007 à 16:26
En faite je voudrais insérer dans la table etudiant (la 2eme page de code), un lien dans la colonne "Contrat" vers la jointure que j'ai créer dans une autre table.
Dans les autres colonnes, les informations sont rentrés par une page d'insertion de coordonnées et la colonne Contrat me permet d'aller voir les contrats de l'étudiant.
Dans les autres colonnes, les informations sont rentrés par une page d'insertion de coordonnées et la colonne Contrat me permet d'aller voir les contrats de l'étudiant.
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
1 mars 2007 à 10:57
1 mars 2007 à 10:57
je voudrais insérer un lien vers le tableau HTML de mon code #1 (la jointure entre ma table etudiant et contrat) dans une colonne (colonne "Contrat") du tableau HTML de mon code #2 (table etudiant).
Voici la fin de la table etudiant avec la colonne "Contrat" (derniere colonne):
http://img135.imageshack.us/img135/3977/sanstitrego6.jpg
Et voici le tableau (la jointure) que je voudrais insérer dans la colonne "Contrat" :
http://img389.imageshack.us/img389/5554/sanstitrejr3.jpg
Mon but est de faire un lien vers le contrat de l'étudiant X.
Voici la fin de la table etudiant avec la colonne "Contrat" (derniere colonne):
http://img135.imageshack.us/img135/3977/sanstitrego6.jpg
Et voici le tableau (la jointure) que je voudrais insérer dans la colonne "Contrat" :
http://img389.imageshack.us/img389/5554/sanstitrejr3.jpg
Mon but est de faire un lien vers le contrat de l'étudiant X.
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
1 mars 2007 à 13:45
1 mars 2007 à 13:45
Merci Xavier, pour la 2eme chose je l'ai fait.
Par contre pour la première chose, ce code je le mets dans code "insertion coordonnées" où je rentre toutes les informations sur l'étudiant ?
Voici son code :
Merci.
Par contre pour la première chose, ce code je le mets dans code "insertion coordonnées" où je rentre toutes les informations sur l'étudiant ?
Voici son code :
<html> <head> <title>Saisissez les coordonnées de letudiant</title> </head> <body> <form action= "<?php echo $_SERVER['PHP_SELF'];?>" method="post" enctype="application/x-www-form-urlencoded"> <fieldset> <legend><b>Coordonnées de l`étudiant</b></legend> <table> <tr><td>Nom : </td><td><input type="text" name="nom" size="40" maxlength="30"/></td></tr> <tr><td>Prénom : </td><td><input type="text" name="prenom" size="40" maxlength="30"/></td></tr> <tr><td>Titre : </td><td><select name="titre"> <option value=""></option> <option value="Mademoiselle">Mademoiselle</option> <option value="Madame">Madame</option> <option value="Monsieur">Monsieur</option> </select> </td></tr> <tr><td>Adresse : </td><td><input type="text" name="adresse" size="40" maxlength="60"/></td></tr> <tr><td>Ville : </td><td><input type="text" name="ville" size="40" maxlength="40"/></td></tr> <tr><td>Code Postal : </td><td><input type="text" name="codepostal" size="40" maxlength="10"/></td></tr> <tr><td>Téléphone fixe : </td><td><input type="text" name="telephonefixe" size="40" maxlength="20"/></td></tr> <tr><td>Téléphone portable : </td><td><input type="text" name="telephoneportable" size="40" maxlength="20"/></td></tr> <tr><td>Mail : </td><td><input type="text" name="email" size="40" maxlength="50"/></td></tr> <tr><td>Date de naissance : </td><td><input type="text" name="datenaissance" value="0000-00-00" size="40" maxlength="99"></td></tr> <tr><td>Lieu de naissance : </td><td><input type="text" name="lieunaissance" size="40" maxlength="50"/></td></tr> <tr><td>Nationalité : </td><td><input type="text" name="nationalite" size="40" maxlength="50"/></td></tr> <tr><td>Situation de famille : </td><td><select name="situationfamiliale"> <option value=""></option> <option value="Marie">Marié</option> <option value="Celibataire">Célibataire</option> <option value="Autre">Autre</option> </select> </td></tr> <tr><td>Formation choisie : </td><td><select name="formationchoisie"> <option value=""></option> <option value="BTS Management des Unites Commerciales">BTS Management des Unités Commerciales</option> <option value="BTS Assistante de Gestion PME PMI">BTS Assistance de Gestion PME PMI</option> <option value="BTS Negociation et Relation Client">BTS Négociation et Relation Client</option> <option value="BTS Comptabilite et Gestion des Organisations">BTS Comptabilité et Gestion des Organisations</option> <option value="BTS Transport">BTS Transport</option> </select> </td></tr> <tr><td>Situation précédente : </td><td><input type="text" name="situationprecedente" size="40" maxlength="50"/></td></tr> <tr><td>Diplôme : </td><td><input type="text" name="diplome" size="40" maxlength="50"/></td></tr> <tr><td>Permis de conduire : </td><td><select name="permisdeconduire"> <option value=""></option> <option value="Oui">Oui</option> <option value="Non">Non</option> <option value="En cours">En cours</option> </select> </td></tr> <tr><td>Véhicule : </td><td><select name="vehicule"> <option value=""></option> <option value="Oui">Oui</option> <option value="Non">Non</option> </select> </td></tr> <tr><td>Date d`inscription : </td><td><input type="text" name="dateinscription" value="0000-00-00" size="40" maxlength="50"/></td></tr> <tr> <td><input type="reset" value=" Effacer "></td> <td><input type="submit" value=" Envoyer "></td> </tr> </table> </fieldset> </form> <?php include('connex.inc.php'); if(!empty($_POST['nom'])&& !empty($_POST['prenom'])&& !empty($_POST['adresse'])&& !empty($_POST['ville'])) { $id_etudiant="\N"; $nom=mysql_escape_string($_POST['nom']); $prenom=mysql_escape_string($_POST['prenom']); $titre=mysql_escape_string($_POST['titre']); $adresse=mysql_escape_string($_POST['adresse']); $ville=mysql_escape_string($_POST['ville']); $codepostal=mysql_escape_string($_POST['codepostal']); $telephonefixe=mysql_escape_string($_POST['telephonefixe']); $telephoneportable=mysql_escape_string($_POST['telephoneportable']); $email=mysql_escape_string($_POST['email']); $datenaissance=mysql_escape_string($_POST['datenaissance']); $lieunaissance=mysql_escape_string($_POST['lieunaissance']); $nationalite=mysql_escape_string($_POST['nationalite']); $situationfamiliale=mysql_escape_string($_POST['situationfamiliale']); $formationchoisie=mysql_escape_string($_POST['formationchoisie']); $situationprecedente=mysql_escape_string($_POST['situationprecedente']); $diplome=mysql_escape_string($_POST['diplome']); $permisdeconduire=mysql_escape_string($_POST['permisdeconduire']); $vehicule=mysql_escape_string($_POST['vehicule']); $dateinscription=mysql_escape_string($_POST['dateinscription']); //Requète SQL $requete4="INSERT INTO etudiant VALUES('$id_etudiant','$nom','$prenom','$titre','$adresse','$ville','$codepostal','$telephonefixe','$telephoneportable','$email','$datenaissance','$lieunaissance','$nationalite','$situationfamiliale','$formationchoisie','$situationprecedente','$diplome','$permisdeconduire','$vehicule','$dateinscription')"; $idcom=connex('btscp','myparam'); $result=mysql_query($requete4,$idcom); if(!$result) { echo mysql_errno(); echo mysql_error(); echo "<script type=\"text/javascript\"> alert('Erreur : ".mysql_error()."')</script>"; } else { echo "<script type=\"text/javascript\"> alert('Les coordonnées de l`étudiant sont enregistrées. Son numéro d'étudiant est : ".mysql_insert_id()."')</script>"; } } else {echo "<h3>Formulaire à compléter!</h3>";} ?> </body> </html>
Merci.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 mars 2007 à 13:48
1 mars 2007 à 13:48
Non non, c'est à mettre dans le deuxième fichier que tu avais copié-collé dans ton premier message.
En fait, j'ai repris une partie du code que tu as déjà écrit, j'ai juste rajouté une ligne.
En fait, j'ai repris une partie du code que tu as déjà écrit, j'ai juste rajouté une ligne.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
1 mars 2007 à 14:05
1 mars 2007 à 14:05
Ok merci, c'est bon ca me met bien le lien cool par contre j'ai une erreur maintenant qui est :
Notice: Undefined index: id in c:\program files\easyphp1-8\www\etudiant.php on line 37
Sinon quand je clique sur le lien qui me renvoi au contrat de l'étudiant X, il me donne le meme contrat pour tous les étudiants. Pourtant j'ai bien rajouté le code que vous m'avez donné dans le code de la jointure (le code #2).
Merci pour votre aide.
Notice: Undefined index: id in c:\program files\easyphp1-8\www\etudiant.php on line 37
Sinon quand je clique sur le lien qui me renvoi au contrat de l'étudiant X, il me donne le meme contrat pour tous les étudiants. Pourtant j'ai bien rajouté le code que vous m'avez donné dans le code de la jointure (le code #2).
Merci pour votre aide.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 mars 2007 à 14:07
1 mars 2007 à 14:07
Ben l'erreur est assez explicite : dans ce que je t'ai demandé de rajouter, le 'id' de $ligne['id'] n'est pas reconnu.
Et pour cause, il faut mettre ici l'identifiant de l'étudiant dans la table, soit en fait $ligne['id_etudiant']. Désol, j'ai pas fait attention en te donnant le code...
Et pour cause, il faut mettre ici l'identifiant de l'étudiant dans la table, soit en fait $ligne['id_etudiant']. Désol, j'ai pas fait attention en te donnant le code...
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
1 mars 2007 à 14:13
1 mars 2007 à 14:13
A oui j'aurais pu trouver, par contre c'est bizarre car j'ai toujours l'erreur :
Notice: Undefined index: id_etudiant in c:\program files\easyphp1-8\www\etudiant.php on line 37
Pourtant, c'est bien la bonne variable.
Notice: Undefined index: id_etudiant in c:\program files\easyphp1-8\www\etudiant.php on line 37
Pourtant, c'est bien la bonne variable.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 mars 2007 à 14:20
1 mars 2007 à 14:20
Ah ben oui, encore désolé, j'avais mal regardé !
Tu fais : mysql_fetch_array($result,MYSQL_NUM)
Le "MYSQL_NUM" fait que le tableau renvoyé ne contient que des numéros de champ, et pas leur nom.
Donc à la place de $ligne['id_etudiant'], il faut mettre $ligne[0]
(Enfin, remplace 0 par la position de la colonne id_etudiant dans la table, mais j'imagine que ce sera la première...)
Ou alors, enlève le deuxième argument de mysql_fetch_array :
mysql_fetch_array($result);
Tu fais : mysql_fetch_array($result,MYSQL_NUM)
Le "MYSQL_NUM" fait que le tableau renvoyé ne contient que des numéros de champ, et pas leur nom.
Donc à la place de $ligne['id_etudiant'], il faut mettre $ligne[0]
(Enfin, remplace 0 par la position de la colonne id_etudiant dans la table, mais j'imagine que ce sera la première...)
Ou alors, enlève le deuxième argument de mysql_fetch_array :
mysql_fetch_array($result);
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
1 mars 2007 à 14:30
1 mars 2007 à 14:30
Ca marche ! Merci !
Sinon quand je clique sur le lien, il me donne tous les contrats de tous les étudiants, pas celui de l'étudiant en question.
Poutant j'ai bien rajouté ceci :
Merci pour votre aide.
Sinon quand je clique sur le lien, il me donne tous les contrats de tous les étudiants, pas celui de l'étudiant en question.
Poutant j'ai bien rajouté ceci :
echo "<tr>"; foreach($ligne as $valeur) { echo "<td> $valeur </td>"; } echo "</tr>"; } echo "</table>";
Merci pour votre aide.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 mars 2007 à 14:39
1 mars 2007 à 14:39
Et quand tu cliques sur un de ces liens, quelle est l'adresse qui apparait dans la barre d'adresse du navigateur ?
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
1 mars 2007 à 14:45
1 mars 2007 à 14:45
Voici l'adresse de la page qui s'ouvre quand je clique sur le lien :
http://sgbd/contrat.php?id_etudiant=4
Le chiffre 4 change si je clique sur un autre lien d'un autre étudiant.
C'est peut etre un problème dans mon sql sinon.
http://sgbd/contrat.php?id_etudiant=4
Le chiffre 4 change si je clique sur un autre lien d'un autre étudiant.
C'est peut etre un problème dans mon sql sinon.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 mars 2007 à 14:48
1 mars 2007 à 14:48
Mmmmh, ça devrait être bon, là, pourtant...
Et tu as bien modifié l'écriture de la requête comme je l'ai dit :
?
Tu peux mettre un "echo $requete3" juste avant le $result=... pour voir à quoi ressemble la requête exactement ?
Et tu as bien modifié l'écriture de la requête comme je l'ai dit :
$requete3="SELECT nom, prenom, id_contrat, datedebut, datefin, salairebrut, typecontrat, dureeperiodeessai, emploiprecisoccupe, dureehebdomadaire, caissederetraitecomplementaire, organismedeprevoyance FROM etudiant, contrat WHERE contrat.id_etudiant = etudiant.id_etudiant"; if (isset($_GET['id_etudiant'])) $requete3 .= " AND etudiant.id_etudiant='".$_GET['id_etudiant']."'"; $result=@mysql_query($requete3,$idcom);
?
Tu peux mettre un "echo $requete3" juste avant le $result=... pour voir à quoi ressemble la requête exactement ?
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
1 mars 2007 à 15:00
1 mars 2007 à 15:00
Oui j'ai bien remplacer l'ancien code par le nouveau que vous m'avez donné.
J'ai essayé de mettre un
Ca peut venir du sql ? j'ai rajouté un champ "id_etudiant" dans la table contrat.
J'ai essayé de mettre un
echo "$requete3";après $result= mais je n'ai pas eut de résultat.
Ca peut venir du sql ? j'ai rajouté un champ "id_etudiant" dans la table contrat.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 mars 2007 à 15:14
1 mars 2007 à 15:14
Enlève le "@" devant mysql_query pour voir s'il y a un problème ?
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
1 mars 2007 à 15:17
1 mars 2007 à 15:17
Non aucun problème, ca me fait la meme chose.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
1 mars 2007 à 15:24
1 mars 2007 à 15:24
Mais je ne comprends pas, tu n'arrives pas à lui demander d'afficher cette requête ??
C'est dingue...
Et si tu mets
echo $requete3
avant le $result=... ?
C'est dingue...
Et si tu mets
echo $requete3
avant le $result=... ?
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
2 mars 2007 à 10:14
2 mars 2007 à 10:14
Alors quand je rajoute echo $requete3; quand je lis la page jointure, je vois la requete3 avant le tableau. Par contre quand je clique sur un lien dans ma colonne Contrat pour aller sur le contrat de l'étudiant, je ne vois pas la requete.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
2 mars 2007 à 10:18
2 mars 2007 à 10:18
Euh attends, je pensais que lorsque tu étais sur la fiche d'un Etudiant, tu avais une colonne "contrat" sur laquelle tu cliquais pour obtenir les contrats en question de l'étudiant, sur ta page de jointure... Non ?
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
2 mars 2007 à 10:31
2 mars 2007 à 10:31
Oui c'est bien ca, mais j'ai essayé de lire la page jointure seule pour voir ce qu'elle donnait c'est tout.
Mais ce que je voudrais c'est bien ce que tu pense, j'ai une colonne Contrat qui me donne un lien pour chaque étudiant, vers son contrat.
Mais ce que je voudrais c'est bien ce que tu pense, j'ai une colonne Contrat qui me donne un lien pour chaque étudiant, vers son contrat.
Reivax962
Messages postés
3672
Date d'inscription
jeudi 16 juin 2005
Statut
Membre
Dernière intervention
11 février 2021
1 011
2 mars 2007 à 10:37
2 mars 2007 à 10:37
Mais la page qu'il faut appeler dans ton lien, c'est celle de la jointure, non ?
Alors pourquoi elle se comporte différemment selon que tu l'ouvres directement, ou que tu l'ouvres via un lien ?? T'es sûr que ton lien pointe vers la bonne page ?
Alors pourquoi elle se comporte différemment selon que tu l'ouvres directement, ou que tu l'ouvres via un lien ?? T'es sûr que ton lien pointe vers la bonne page ?
cb
Messages postés
45
Date d'inscription
vendredi 21 janvier 2005
Statut
Membre
Dernière intervention
14 avril 2010
15
2 mars 2007 à 11:37
2 mars 2007 à 11:37
Je suis bete, je l'a renvoyé a une autre page nommé Contrat et non jointure. Erreur de ma part désolé !
Je te remercie pour ton aide. :)
Maintenant je vais voir la sécurité de ma sgbd ;)
Je te remercie pour ton aide. :)
Maintenant je vais voir la sécurité de ma sgbd ;)