IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Passage de paramètres dans l'URL [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut Passage de paramètres dans l'URL
    Bonjour,

    Je souhaiterais passer en paramètres dans l'URL afin de faire la liaison entre les pages.

    J'ai cherché et j'ai trouvé comment faire (un exemple) :

    Sur la page : index.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p><a href="bonjour.php?nom=Dupont&prenom=Jean">Dis-moi bonjour !</a></p>
    Sur la page : bonjour.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p>Bonjour <?php echo $_GET['prenom'] . ' ' . $_GET['nom']; ?> !</p>
    J'ai compris le principe donc j'essaye de l'appliquer dans mon cas mais ça me pose problème.
    Je vous explique ce que je veux transmettre :
    - l'identifiant de l'utilisateur connecté,
    - le titre de la page

    Pour récupérer l'identifiant de l'utilisateur connecté, voici la requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Sélectionnement de l'identifiant de l'élève connecté dans la base de données
    	$query_selection_identifiant_id_eleve_connecte = mysql_query("SELECT DISTINCT(id_utilisateur) FROM test_site_utilisateur WHERE pseudo_utilisateur='$pseudo_utilisateur' AND acces_utilisateur='1' OR acces_utilisateur='4'") or die ('Erreur lors de la requête SQL qui permet de sélectionner l\'élève connecté.'); // Envoie une requête à un serveur MySQL
    Le problème c'est qu'il faut que je fasse une boucle while (ci dessous) sur une autre requête SQL, la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       	// Sélectionnement des Cours/TP de l'élève dans la base de données
    	$query_selection_cours_tp_eleve = mysql_query("SELECT DISTINCT(titre_cours),t3.matiere_cours_tp,t3.classe_cours_tp,t3.date_depot_cours_tp,contenu_cours_tp,t3.nom_auteur_cours_tp,type_devoir_cours_tp,t3.date_cloture_validation_cours_tp FROM test_site_utilisateur t1, test_site_questions t2,test_site_cours_tp t3 WHERE t1.pseudo_utilisateur='$pseudo_utilisateur' AND t3.type_devoir_cours_tp='1' AND t2.type_devoir='1'") or die ('Erreur lors de la requête SQL qui permet de récupérer les Cours/TP d\'un élève.'); // Envoie une requête à un serveur MySQL

    Je vous mets la boucle while sur la requête SQL ci-dessus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while ($donnees_cours_tp_eleve = mysql_fetch_assoc($query_selection_cours_tp_eleve)) {
    	echo '<tr>';
       // echo '<td align="right"><a href="page.php?usr_id='.$query_selection_identifiant_id_eleve_connecte.'titre_cours_tp=' . urlencode($donnees_cours_tp_eleve['titre_cours']).'"</a></td>';
     
    echo '<td align="right"><a href="avancement_global.php?'.urlencode($donnees_cours_tp_eleve['titre_cours']).'"&&"">'.$donnees_cours_tp_eleve['titre_cours'].'</td>';
    }
    Le truc, c'est qu'il y a deux requêtes SQL à gérer.

    Vous remarquerez que j'ai utilisé pour encoder l'adresse URL.

    En une seule phrase : comment gérer la transition entre les deux pages tout en "gardant" les fonctionnalités ces deux boucles ?

    Pouvez-vous m'éclairer SVP ?

    Cordialement.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour gérer ton utilisateur connecté, utilise une session PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Ok, je vais utiliser les variables de sessions. C'est beaucoup plus simple comme ça qu'en passant grâce aux paramètres dans l'URL.

    Mais, comment tu fais pour faire passer les variables de sessions au clic sur le titre ?


    Finalement, j'ai mis cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_SESSION['titre_cours']=$donnees_cours_tp_eleve['titre_cours'];
    La valeur est transmise.

    Mais est-ce que s'il y a plusieurs enregistrement, la variable de session va prendre comme valeur l'"item" sur lequel l'utilisateur a cliqué/choisi ?

    Cordialement

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    une solution consiste à remplacer le lien <a...> par un formulaire <form method="post"...>,
    avec les 2 données transmises en <input type="hidden" .../>

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    L'utilisateur connecté va en session car il persiste pendant toute la navigation.
    Le "titre_cours" est transmis par le lien.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    Je reviens vers vous car je rencontre deux problèmes.

    Premier problème : Sur la page qui recense tous les cours :

    Quand il y a qu'un enregistrement dans la base de données, le titre s'affiche (avec le lien) qu'une fois. Jusque là, c'est bon !
    En ajoutant un enregistrement dans la base de données, les titres s'affichent en double (exemple : Premier enregistrement, Premier enregistrement, Deuxième enregistrement, Deuxième enregistrement) alors que je voudrais afficher : Premier enregistrement, Deuxième enregistrement, etc...

    Voici la requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Sélectionnement des Cours/TP de l'élève dans la base de données
    $query_selection_cours_tp_eleve = mysql_query("SELECT DISTINCT(titre_cours),t3.matiere_cours_tp,t3.classe_cours_tp,t3.date_depot_cours_tp,contenu_cours_tp,t3.nom_auteur_cours_tp,type_devoir_cours_tp,t3.date_cloture_validation_cours_tp FROM test_site_utilisateur t1, test_site_questions t2,test_site_cours_tp t3 WHERE t1.pseudo_utilisateur='$pseudo_utilisateur' AND t3.type_devoir_cours_tp='1' AND t2.type_devoir='1'") or die ('Erreur lors de la requête SQL.'); // Envoie une requête à un serveur MySQL
    Voici le test en intégralité (avec la boucle) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    if(mysql_num_rows($query_selection_cours_tp_eleve)>0) {
    echo "blabla (début tableau)"
    while ($donnees_cours_tp_eleve = mysql_fetch_assoc($query_selection_cours_tp_eleve)) {
    	echo '<tr>';
        echo '<td align="right"><a href="cours_tp.php" target="_blank">'.$donnees_cours_tp_eleve['titre_cours'].'</a></td>';
        echo '<td align="right">'.dateLongueSansHeure($donnees_cours_tp_eleve['date_cloture_validation_cours_tp']).'</td>';
     
    	// Variable de session (pour gérer la transmission des variables du cours/tp)
    	$_SESSION['titre_cours_tp']=$donnees_cours_tp_eleve['titre_cours'];
    }
    	echo 'fin tableau';
    }
    Deuxième problème : Sur la page qui affiche le cours
    Cette page affiche le cours, jusque là c'est bon, voici le problème : quand on change de cours (enregistrements), il s'affiche en dessous du premier.
    J'aimerais que quand on change de cours, le premier s'efface pour laisser la place au second.
    Pour cela, j'ai essayé de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unset($_SESSION['titre_cours_tp']);
    dans la boucle mais ça ne fonctionne pas.

    Pouvez-vous m'aider SVP ?

    Cordialement

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 - Il faut utiliser une jointure dans ta requête et non pas lister les tables les une à la suite des autres

    2 - je t'ai déjà répondu : le titre de cours n'a (à priori) rien à faire en session
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Citation Envoyé par sabotage Voir le message
    1 - Il faut utiliser une jointure dans ta requête et non pas lister les tables les une à la suite des autres
    Que veux-tu dire ? C'est ce que je fais dans le en utilisant t1, t2 et t3, non ?

    Citation Envoyé par sabotage Voir le message
    2 - je t'ai déjà répondu : le titre de cours n'a (à priori) rien à faire en session
    Qu'est-ce que tu mettrais en session ? L'identifiant ? C'est la session pour savoir quel cours choisir.

    Cordialement

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ Attention aux priorités entre "AND" et "OR".
    Il vaut mieux mettre des parenthèses pour éviter toute mauvaise surprise :

    Pour récupérer l'identifiant de l'utilisateur connecté, voici la requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Sélectionnement de l'identifiant de l'élève connecté dans la base de données
    	$query_selection_identifiant_id_eleve_connecte = mysql_query("SELECT DISTINCT(id_utilisateur) 
    		FROM test_site_utilisateur 
    		WHERE pseudo_utilisateur='$pseudo_utilisateur' 
    		AND acces_utilisateur='1' OR acces_utilisateur='4'") 
    		or die ('Erreur lors de la requête SQL qui permet de sélectionner l\'élève connecté.'); // Envoie une requête à un serveur MySQL
    // Sélectionnement de l'identifiant de l'élève connecté dans la base de données
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	$query_selection_identifiant_id_eleve_connecte = mysql_query("SELECT DISTINCT(id_utilisateur) 
    		FROM test_site_utilisateur 
    		WHERE pseudo_utilisateur='$pseudo_utilisateur' 
    		AND ( acces_utilisateur='1' OR acces_utilisateur='4' ) ") 
    		or die ('Erreur lors de la requête SQL qui permet de sélectionner l\'élève connecté.'); // Envoie une requête à un serveur MySQL
    2/ La seule données à mettre en SESSION ici est : id_utilisateur
    Étant unique, il identifie à coup sûr l'utilisateur.

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 - http://sqlpro.developpez.com/cours/sqlaz/jointures/

    2 - je t'ai déjà répondu : la session va contenir, par exemple, l'id de l'utilisateur connecté.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Rebonjour

    Je reviens vers vous car j'ai "réparé" le premier problème : maintenant les titres s'affichent une seule fois même s'il y a plusieurs enregistrements en mettant cette requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Sélectionnement des Cours/TP de l'élève dans la base de données
    	$query_selection_cours_tp_eleve = mysql_query("SELECT DISTINCT(titre_cours_tp), t3.matiere_cours_tp, t3.classe_cours_tp, t3.date_depot_cours_tp, contenu_cours_tp, t3.nom_auteur_cours_tp, type_devoir_cours_tp, t3.date_cloture_validation_cours_tp FROM test_site_utilisateur t1, test_site_cours_tp t3 WHERE t1.pseudo_utilisateur='$pseudo_utilisateur' AND t3.type_devoir_cours_tp='1'") or die ('Erreur lors de la requête SQL qui permet de récupérer les Cours/TP d\'un élève.'); // Envoie une requête à un serveur MySQL
    Par contre ça me parait bizarre qu'il y ait un rapport (avant ça ne le faisait pas), sur la page qui permet d'enregistrer un cours (donc sur une autre page), j'ai un avertissement. Le cours s'enregistre correctement mais il y a, désormais, un avertissement Warning.

    Voici l'avertissement :
    Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0

    Je vous précise que c'est la première fois qu'il s'affiche...
    D'où cela peut provenir ?

    Je reviens sur le deuxième problème : à savoir la page qui n'efface pas un cours et affiche l'autre en dessous, je ne m'en suis pas occupé donc ça fait pareil...

    Voilà, c'est pour vous tenir au courant. En gros, j'ai réglé un problème sur deux malgré l'avertissement que j'espère pouvoir enlever !!!

    Cordialement

  12. #12
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    J'essaye de régler le deuxième problème : à savoir la page qui affiche les cours : quand on change de Cours/TP ça n'enlève pas le premier et affiche le second après.

    Je suis d'accord qu'il faut transmettre que les identifiants car c'est ce qui a de unique.

    Afin de faire passer en variable de session entre les deux pages l'identifiant de l'utilisateur connecté, j'ai rajouté une requête SQL et une boucle pour récupérer l'identifiant de l'utilisateur connecté (sur la page qui recense les cours) :
    Voici la requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Récupération de l'identifiant connecté dans la base de données
    $query_recuperation_identifiant_connecte = mysql_query("SELECT id_utilisateur FROM test_site_utilisateur WHERE  pseudo_utilisateur='$pseudo_utilisateur'") or die ('Erreur lors de la requête SQL qui permet de récupérer l\'identifiant connecté.'); // Envoie une requête à un serveur MySQL
    Voici la boucle (qui a pour but de récupérer l'identifiant de l'utilisateur connecté) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    // Variable de session (pour gérer la transmission de l'identifiant de l'utilisateur connecté)
    while ($donnees_identifiant_connecte = mysql_fetch_assoc($query_recuperation_identifiant_connecte)) {
    	$id_utilisateur_connecte=mysql_real_escape_string(htmlspecialchars(stripcslashes($donnees_identifiant_connecte['id_utilisateur'])));
    $identifiant_utilisateur_connecte=mysql_real_escape_string(htmlspecialchars(stripcslashes($_SESSION['$id_utilisateur_connecte'])));
    echo $identifiant_utilisateur_connecte;
    }
    Par la même occasion, je vous mets les codes en intégralité :
    -de la page qui recense les cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    // Récupération de l'identifiant connecté dans la base de données
    $query_recuperation_identifiant_connecte = mysql_query("SELECT id_utilisateur FROM test_site_utilisateur WHERE  pseudo_utilisateur='$pseudo_utilisateur'") or die ('Erreur lors de la requête SQL qui permet de récupérer l\'identifiant connecté.'); // Envoie une requête à un serveur MySQL
     
    // Sélectionnement des Cours/TP de l'élève dans la base de données
    $query_selection_cours_tp_eleve = mysql_query("SELECT DISTINCT(titre_cours_tp), t3.matiere_cours_tp, t3.classe_cours_tp, t3.date_depot_cours_tp, contenu_cours_tp, t3.nom_auteur_cours_tp, type_devoir_cours_tp, t3.date_cloture_validation_cours_tp FROM test_site_utilisateur t1, test_site_cours_tp t3 WHERE t1.pseudo_utilisateur='$pseudo_utilisateur' AND t3.type_devoir_cours_tp='1' ORDER BY date_cloture_validation_cours_tp") or die ('Erreur lors de la requête SQL qui permet de récupérer les Cours/TP d\'un élève.'); // Envoie une requête à un serveur MySQL
     
    if(mysql_num_rows($query_selection_cours_tp_eleve)>0) {
    echo 'début du tableau';
        echo 'le contenu issu de la base de données à afficher';
     
    }
    // Variable de session (pour gérer la transmission de l'identifiant de l'utilisateur connecté)
    while ($donnees_identifiant_connecte = mysql_fetch_assoc($query_recuperation_identifiant_connecte)) {
    	$id_utilisateur_connecte=mysql_real_escape_string(htmlspecialchars(stripcslashes($donnees_identifiant_connecte['id_utilisateur'])));
    $identifiant_utilisateur_connecte=mysql_real_escape_string(htmlspecialchars(stripcslashes($_SESSION['$id_utilisateur_connecte'])));
    echo $identifiant_utilisateur_connecte;
    }
    	echo 'fin du tableau';
    }
    -de la page qui affiche un cours :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    	// Variables de session - DEBUT
    	$pseudo_utilisateur=$_SESSION['pseudo_utilisateur'];
    	$titre_cours_tp=$_SESSION['titre_cours_tp']; // A VOIR - provisoire en attendant que le test par l'identifiant fonctionne
    	// Variables de session - FIN
     
    // Requêtes SQL - DEBUT
    	// Sélectionnement de l'identifiant de l'élève connecté
    	$selection_identifiant_id_eleve_connecte = mysql_query("SELECT pseudo_utilisateur,id_utilisateur FROM test_site_utilisateur WHERE pseudo_utilisateur='$pseudo_utilisateur' AND (acces_utilisateur='1' OR acces_utilisateur='5')") or die ('Erreur lors de la requête SQL qui permet de sélectionner l\'élève connecté.'); // Envoie une requête à un serveur MySQL
    	// Sélectionnement du bon Cours/TP
    	$selection_cours_tp = mysql_query("SELECT DISTINCT(date_depot_cours_tp),titre_cours_tp,contenu_cours_tp,matiere_cours_tp,nom_auteur_cours_tp,classe_cours_tp FROM test_site_cours_tp,test_site_utilisateur WHERE pseudo_utilisateur='$pseudo_utilisateur' AND type_devoir_cours_tp='1' AND (acces_utilisateur='1' OR acces_utilisateur='5')") or die("Erreur sur la requête SQL qui sélectionne toutes les informations du Cours/TP (sauf les questions).");
    	// Sélectionnement des bonnes questions par rapport au Cours/TP
    	$selection_questions_cours_tp = mysql_query("SELECT DISTINCT(texte_question_cours) FROM test_site_questions t1,test_site_utilisateur t2, test_site_cours_tp t3 WHERE pseudo_utilisateur='$pseudo_utilisateur' AND t1.titre_cours =t3.titre_cours_tp AND t3.type_devoir_cours_tp='1' AND type_devoir_cours_tp='1' AND (acces_utilisateur='1' OR acces_utilisateur='5')") or die("Erreur sur la requête SQL qui sélectionne les questions du Cours/TP.");
    // Requêtes SQL - FIN
     
    // Boucle et Test - DEBUT
    if(mysql_num_rows($selection_identifiant_id_eleve_connecte)==1) {
    while ($donnees_cours_tp_eleve = mysql_fetch_array($selection_cours_tp)) {
    	echo 'le contenu avec les données issues de la base de données");
    }
    }
    else {
    	echo "<p style='color:red;'>Mauvais couple identifiant/mot de passe.</p>";
    	// On redirige le visiteur vers la page d'accueil
    	header ('location:adresse.php');
    }
    // Boucle et Test- FIN
    Si je comprends bien il faut que je mettes en SESSION ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $donnees_identifiant_connecte['id_utilisateur']
    . C'est l'identifiant de l'utilisateur connecté trouvé dans la base de données. Mais si c'est ça qu'il faut faire, comment ?

    Qu'est-ce qu'il ne va pas ?
    Pouvez-vous m'aider SVP ?

    Cordialement

  13. #13
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Je sais ce qu'il faut faire mais je ne sais pas comment !

    Sur la page qui recense les cours, il faut récupérer l'identifiant du cours choisi.
    Sur la page qui affiche les cours, il faut ajouter une condition dans la requête SQL qui permet de sélectionner le bon cours, la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Sélectionnement du bon Cours/TP
    $selection_cours_tp = mysql_query("SELECT DISTINCT(date_depot_cours_tp),titre_cours_tp,contenu_cours_tp,matiere_cours_tp,nom_auteur_cours_tp,classe_cours_tp FROM test_site_cours_tp,test_site_utilisateur WHERE pseudo_utilisateur='$pseudo_utilisateur' AND type_devoir_cours_tp='1' AND (acces_utilisateur='1' OR acces_utilisateur='5')") or die("Erreur sur la requête SQL qui sélectionne toutes les informations du Cours/TP (sauf les questions).");
    . Voici la condition : AND titre_cours_tp = l'identifiant du cours choisi (voir ci-dessus)

    Mais je n'arrive pas à récupérer l'identifiant du cours pour le mettre dans une variable de session.

    Dites-moi ce que vous pensez de mon raisonnement SVP.

    Je ne suis pas loin, non ?
    Si oui, dites-moi SVP comment faire ?

    Cordialement

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par vinceom92 Voir le message
    Qu'est-ce qu'il ne va pas ?
    Ce qui ne va pas, c'est que tu nous inondes de phrases et de bouts de code, en espérant qu'on va te suivre dans tes réflexions et tentatives pour résoudre X problèmes en même temps.

    Fais une pause, et lève la tête du guidon !
    Tu parles tout seul !

    On est complètement perdus !

    Reprends depuis le début (explication + code NÉCESSAIRE ET SUFFISANT), et UN SEUL problème A LA FOIS.

  15. #15
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Ok , je reprends tout depuis le début...

    Au début, j'avais deux problèmes, maintenant j'en ai plus qu'un (malgré un avertissement).

    Je vous explique le problème actuel :

    J'ai une page qui affiche la liste des cours.

    J'ai une page qui affiche le cours.

    Le problème est simple : Au lieu d'afficher le cours choisi, la page affiche tous les cours enregistrés.

    Donc, je voudrais faire en sorte qu'un seul cours s'affiche en même temps...

    Cordialement.

  16. #16
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Bonjour,

    J'ai réussi à enlever l'avertissement suivant (sur l'autre page) :
    Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively in Unknown on line 0" en ajoutant le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    ini_set ('session.bug_compat_42', 0); 
    ini_set ('session.bug_compat_warn', 0); 
    ?>
    Désormais, il ne reste plus qu'à régler un seul problème : celui de la page qui affiche les cours.

    Cordialement

  17. #17
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Merci de ta réponse.

    On choisi le cours dans la liste de cours non pas avec un formulaire mais avec une boucle PHP qui, à partir d'une requête SQL, sélectionne les cours pour afficher les titres des cours, la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while ($donnees_cours_tp_eleve = mysql_fetch_assoc($query_selection_cours_tp_eleve)) {
    <a href="cours_tp.php" target="_blank" id="lien_cours_tp">'.$donnees_cours_tp_eleve['titre_cours_tp'].'</a>';
    }
    J'aimerais récupérer le cours choisi (donc $donnees_cours_tp_eleve['titre_cours_tp']), le mettre dans une variable de session récupérable dans l'autre page en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $titre_cours_tp=$_SESSION['titre_cours_tp']
    . J'ai essayé de faire ça mais il prend toujours le dernier enregistrement et pas celui qui a été choisi.

    As-tu une idée comment faire pour mettre en variable de session le cours choisi et pas le dernier enregistrement (cours) ?

    J'ai commencé comme ça mais peut-être, il y a plus simple... Si oui, comment ?

    Cordialement

  18. #18
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    2 - je t'ai déjà répondu : le titre de cours n'a (à priori) rien à faire en session
    Citation Envoyé par jreaux62 Voir le message
    2/ La seule données à mettre en SESSION ici est : id_utilisateur
    Étant unique, il identifie à coup sûr l'utilisateur.
    Ca t'arrive de lire les messages ?
    Tu fais de la soupe avec les différents conseils qui te sont donnés.
    A un moment, il faudrait utiliser ton cerveau pour faire le tri.

    Citation Envoyé par jreaux62 Voir le message
    Reprends depuis le début (explication + code NÉCESSAIRE ET SUFFISANT), et UN SEUL problème A LA FOIS.
    Quand je t'ai conseillé de tout reprendre depuis le début, je ne voulais pas dire : "Fais-nous un résumé de la discussion".

    Surtout que tu mélanges tout.
    Les problèmes se règlent un par un, et dans l'ordre.
    Car une solution pour un problème peut entrainer une AUTRE FAÇON de résoudre le problème suivant.

    Vouloir mettre ton pantalon avant d'avoir enfilé ton slip ne te permettra pas de t'habiller plus vite.
    (à moins d'être Superman, évidemment. Mais bon. Un slip rouge sur un collant bleu, il faut savoir le porter...)

    Astuce : Tu peux régler tout tes problèmes comme tu l'as fait ici. En fermant les yeux.
    En clair : ce n'est pas parce que tu n'affiches pas les messages d'erreurs que les erreurs disparaissent !

    Oups ! J'oubliais :
    Cordialement.
    Dernière modification par Invité ; 19/09/2013 à 15h00.

  19. #19
    Membre régulier
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 278
    Points : 74
    Points
    74
    Par défaut
    Mais oui, j'ai vu mais comment tu veux que je transmettes le cours entre les deux pages, avec leurs identifiants ?

    Dans la boucle qui affiche la liste des cours, il faut que j'affiche les titres des cours (qui, au clic, ouvrira la page qui affichera le cours adéquat) !!!

    Peux-tu me faire un exemple STP ?

    Cordialement

  20. #20
    Invité
    Invité(e)
    Par défaut
    C'est pourtant simple !
    Au lieu de nous montrer des bouts de code sortis de leur contexte, commence déjà par nous montrer :
    1/ celui qui permet de sélectionner un cours.
    2/ celui qui permet de récupérer la données à mettre dans la requête d'affichage
    Important : les codes NÉCESSAIRES ET SUFFISANTS. C-à-d ni trop, ni trop peu.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 6 12345 ... DernièreDernière

Discussions similaires

  1. passages de paramètres dans l'url
    Par anchain dans le forum Langage
    Réponses: 2
    Dernier message: 24/04/2008, 13h58
  2. [1.5][Zend_Controller] Passage de paramétres dans l'url
    Par Jonathan.b dans le forum Zend Framework
    Réponses: 4
    Dernier message: 16/04/2008, 19h37
  3. Passage de paramètre dans l'url
    Par ..::snake::.. dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 04/01/2008, 09h52
  4. passage de paramètre dans une url
    Par samira84 dans le forum Struts 1
    Réponses: 5
    Dernier message: 12/06/2007, 15h52
  5. erreur de passage de paramètre dans une urL
    Par lodan dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/02/2007, 12h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo