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. #21
    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 jreaux62 Voir le message
    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 !
    Ok mais dis-moi comment faire pour supprimer cette erreur une fois que l'autre problème sera réglé...

    Cordialement

  2. #22
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par vinceom92 Voir le message
    Peux-tu me faire un exemple STP ?
    C'est une plaisanterie ?

    Montre-nous TON code !! Pas juste des miettes !

  3. #23
    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 jreaux62 Voir le message
    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.
    Le voici :
    Requête SQL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $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.');
    Citation Envoyé par jreaux62 Voir le message
    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.
    La boucle
    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)) {
    echo '<a href="adresse.php" target="_blank" id="lien_cours_tp">'.$donnees_cours_tp_eleve['titre_cours_tp'].'</a>';
    }
    C'est le code de la page qui liste les cours.

    Cordialement

  4. #24
    Invité
    Invité(e)
    Par défaut
    Plusieurs remarques : (déjà dites, pour la plupart, mais tu n'en tiens pas compte)

    1/ Une requête comme celle-là se fait avec JOIN (INNER JOIN, LEFT JOIN...).
    2/ Un cours est, normalement identifié de manière unique par un champ auto-incrémenté. On va l'appelé id_cours_tp.
    $query_selection_cours_tp_eleve = mysql_query("
    SELECT DISTINCT(id_cours_tp), t3.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
    LEFT JOIN test_site_cours_tp t3
    ON t1.id_cours_tp = t3.id_cours_tp

    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.');
    N.B. ON t1.id_cours_tp = t3.id_cours_tp
    => à toi de nous dire comment sont reliées les deux tables : id_cours_tp ? titre_cours_tp ?

    3/ On transmet cet id dans le lien.
    while ($donnees_cours_tp_eleve = mysql_fetch_assoc($query_selection_cours_tp_eleve)) {
    echo '<a href="adresse.php?id_cours_tp='. $donnees_cours_tp_eleve['id_cours_tp'] .'" target="_blank" id="lien_cours_tp">'.$donnees_cours_tp_eleve['titre_cours_tp'].'</a>';
    }
    4/ On récupère alors dans la page adresse.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $id_cours_tp = intval($_GET['id_cours_tp']);

  5. #25
    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
    J'ai des erreurs dans les tables.

    Je vous mets les CREATE TABLE des deux tables :

    test_site_utilisateur
    Code sql : 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
    CREATE TABLE IF NOT EXISTS `test_site_utilisateur` (
      `id_utilisateur` int(11) NOT NULL AUTO_INCREMENT,
      `nom_etablissement_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `nom_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `prenom_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `date_naissance_utilisateur` date NOT NULL,
      `civilite_utilisateur` varchar(12) CHARACTER SET utf8 NOT NULL,
      `sexe_utilisateur` varchar(8) CHARACTER SET utf8 NOT NULL,
      `acces_utilisateur` int(11) NOT NULL DEFAULT '5',
      `email_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `pseudo_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `password_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `code_postal_etablissement_utilisateur` varchar(5) CHARACTER SET utf8 NOT NULL,
      `classe_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `matiereenseignee_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `ville_etablissement_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `date_inscription_utilisateur` datetime NOT NULL,
      `date_derniere_connexion_utilisateur` datetime NOT NULL,
      `date_creation_classe_utilisateur` datetime NOT NULL,
      PRIMARY KEY (`id_utilisateur`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
    test_site_cours_tp
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE IF NOT EXISTS `test_site_cours_tp` (
      `id_cours_tp` int(11) NOT NULL AUTO_INCREMENT,
      `date_depot_cours_tp` datetime NOT NULL,
      `date_cloture_validation_cours_tp` datetime NOT NULL,
      `titre_cours_tp` varchar(255) CHARACTER SET utf8 NOT NULL,
      `contenu_cours_tp` longtext CHARACTER SET utf8 NOT NULL,
      `type_devoir_cours_tp` int(11) NOT NULL DEFAULT '1',
      `matiere_cours_tp` varchar(255) CHARACTER SET utf8 NOT NULL,
      `nom_auteur_cours_tp` varchar(255) CHARACTER SET utf8 NOT NULL,
      `classe_cours_tp` varchar(255) CHARACTER SET utf8 NOT NULL,
      PRIMARY KEY (`id_cours_tp`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
    Je sais que je débute mais comme on dit c'est en faisant des "bêtises" qu'on apprend.

    Donc là, il faut que je rajoute un champs id_cours_tp dans la table test_site_utilisateur.

    Il y a t'il d'autres erreurs dans les CREATE TABLE ?

    Par contre, ne croyez pas que j'attends vos réponses en me tournant les pouces. Je cherche mais sur ce coup, j'ai du mal !

    Voilà !

    Merci d'avance

    PS : J'ai ajouté id_cours_tp dans la table test_site_utilisateur. Voici la requête SQL :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$query_selection_cours_tp_eleve = mysql_query("SELECT DISTINCT(t1.id_cours_tp), t3.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 LEFT JOIN test_site_cours_tp t3 ON t1.id_cours_tp = t3.id_cours_tp 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
    . Il n'y a pas d'erreur affichée mais aussi pas de données (page blanche).

  6. #26
    Invité
    Invité(e)
    Par défaut
    Quelle relation existe-t-il entre `test_site_utilisateur` et `test_site_cours_tp` ?

    Aucune, apparemment. Ce qui, à priori, est normal.
    Car relier les utilisateurs aux cours nécessiterait une 3ème table : appelée table "relationnelle".
    Elle se présenterait comme ça :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE IF NOT EXISTS `test_relation_cours_user` (
      `id_rel_cours_user` int(11) NOT NULL AUTO_INCREMENT,
      `id_cours_tp` int(11) NOT NULL,
      `id_utilisateur` int(11) NOT NULL,
      PRIMARY KEY (`id_rel_cours_user`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    On ne sait pas si tu en as besoin, car tu N'EXPLIQUES PAS CLAIREMENT CE QUE TU AS AU DEPART, CE QUE TU FAIS, et LE RÉSULTAT QUE TU VEUX OBTENIR !

    Donc... explique-nous ce que tu cherches à faire avec ta requête, dans laquelle figurent ces 2 tables ?
    Dixit : "la requête SQL qui permet de récupérer les Cours/TP d'un élève"

    A MON AVIS, ton plus GROS problème est un problème de CONCEPTION.

  7. #27
    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 jreaux62 Voir le message
    Quelle relation existe-t-il entre `test_site_utilisateur` et `test_site_cours_tp` ?
    Avant aucune mais j'ai rajouté id_cours_tp dans la table test_site_utilisateur...

    Citation Envoyé par jreaux62 Voir le message
    Aucune, apparemment. Ce qui, à priori, est normal.
    Car relier les utilisateurs aux cours nécessiterait une 3ème table : appelée table "relationnelle".
    Elle se présenterait comme ça :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE IF NOT EXISTS `test_relation_cours_user` (
      `id_rel_cours_user` int(11) NOT NULL AUTO_INCREMENT,
      `id_cours_tp` int(11) NOT NULL,
      `id_utilisateur` int(11) NOT NULL,
      PRIMARY KEY (`id_rel_cours_user`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
    On ne sait pas si tu en as besoin, car tu N'EXPLIQUES PAS CLAIREMENT CE QUE TU AS AU DEPART, CE QUE TU FAIS, et LE RÉSULTAT QUE TU VEUX OBTENIR !

    Donc... explique-nous ce que tu cherches à faire avec ta requête, dans laquelle figurent ces 2 tables ?
    Je cherche à faire en sorte que quand l'utilisateur choisit un cours, celui-ci et uniquement celui-ci s'affiche...

    A MON AVIS, ton plus GROS problème est un problème de CONCEPTION.
    Effectivement...

  8. #28
    Invité
    Invité(e)
    Par défaut
    Ajouter n'importe quoi, n'importe où et n'importe comment ne résoudra rien.

    On ne se lance pas dans le codage à l'aveuglette.
    Il faut de la rigueur, du papier et un stylo.
    Et rédiger une "feuille de route".

    Une bonne CONCEPTION suppose de savoir :
    • d'où on part,
    • avec quoi,
    • où on va,
    • comment y aller,
    • de quoi on a besoin.

  9. #29
    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 jreaux62 Voir le message
    Ajouter n'importe quoi, n'importe où et n'importe comment ne résoudra rien.

    On ne se lance pas dans le codage à l'aveuglette.
    Il faut de la rigueur, du papier et un stylo.
    Et rédiger une "feuille de route".

    Une bonne CONCEPTION suppose de savoir :
    [*]d'où on part,
    De la page où il y a la liste des cours.
    [*]avec quoi,
    Avec l'identifiant et pas le titre du cours que l'utilisateur aura choisi.
    [*]où on va,
    Sur la page d'affichage du cours choisi.
    [*]comment y aller,
    On y va via un lien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <a href="adresse.php?id_cours_tp='. $donnees_cours_tp_eleve['id_cours_tp'] .'" target="_blank" id="lien_cours_tp">'.$donnees_cours_tp_eleve['titre_cours_tp'].'</a>
    .
    [*]de quoi on a besoin.
    On a besoin de l'identifiant du cours choisi par l'utilisateur.

  10. #30
    Invité
    Invité(e)
    Par défaut
    Ça, c'était la version "Micro Cosmos".

    La vision globale :
    • d'où on part :
      cahier des charges, liste des besoins pour le site.
    • avec quoi :
      langage dynamique (PHP), base de données SQL,...
    • où on va :
      objectif(s) à atteindre
    • comment y aller :
      moyens à mettre en oeuvre pour atteindre les objectifs
    • de quoi on a besoin :
      éléments nécessaires (base de données, tables + champs, formulaire, récupération des données....)


    Dans ton cas précis ici :
    • d'où on part :
      une page où est affichée la liste des cours pour pouvoir sélectionner...........
    • avec quoi :
      des données en Base de données, une page pour afficher la liste.
    • où on va :
      sur une autre page : afficher, après sélection dans la liste, le ...........
    • comment y aller :
      transmission d'un paramètre (id_cours_td) ? comment ? comment le récupérer ? .............
    • de quoi on a besoin :
      un formulaire ? une liste déroulante ? des liens ?....... puis récupéré un paramètre, puis.............


    En clair, c'est plus complexe que tu sembles le croire, mais ça permet de définir clairement tout ce qu'il faut prendre en compte.

    Notamment : les tables en base de données sont-elles correctement conçues par rapport aux besoins ? (exemple de la table relationnelle : nécessaire ou pas ?)

  11. #31
    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
    On est d'accord jusque là !!!

  12. #32
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    @vinceom92

    On est d'accord jusque là !!!
    pas vraiment, il te demande de remplir les ..........

    Dans ton cas précis ici :
    est un plan de travail VIDE
    $moi= ( !== ) ? : ;

  13. #33
    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 jreaux62 Voir le message
    Dans ton cas précis ici :
    • d'où on part :
      une page où est affichée la liste des cours pour pouvoir sélectionner...........
      Oui
    • avec quoi :
      des données en Base de données, une page pour afficher la liste.
      Oui
    • où on va :
      sur une autre page : afficher, après sélection dans la liste, le ...........
      Après la sélection du cours, on affiche le bon cours avec tous les éléments correspondants (titre, date de dépôt, date du cours, etc...)
    • comment y aller :
      transmission d'un paramètre (id_cours_td) ? comment ? comment le récupérer ? .............
      Transmission d'un paramètre (id_cours_td) (pour le mettre dans l'URL en paramètre et/ou dans une variable de session pour transférer les données) comment le récupérer ? En récupérant l'identifiant du cours transmise avec l'URL
    • de quoi on a besoin :
      un formulaire ? une liste déroulante ? des liens ?....... puis récupéré un paramètre, puis.............
      On a besoin d'un lien avec l'identifiant du cours, puis on va récupérer le paramètre transmis dans l'URL pour enfin seulement afficher le cours correspondant.


    En clair, c'est plus complexe que tu sembles le croire, mais ça permet de définir clairement tout ce qu'il faut prendre en compte.

    Notamment : les tables en base de données sont-elles correctement conçues par rapport aux besoins ? (exemple de la table relationnelle : nécessaire ou pas ?)
    La table relationnelle est nécessaire, je l'ai faite mais maintenant il faut changer la requête SQL qui permet de récupérer les cours (voir ci-dessous).

  14. #34
    Membre éclairé Avatar de ypcman
    Homme Profil pro
    Retraité codeur !
    Inscrit en
    Janvier 2011
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Retraité codeur !
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2011
    Messages : 597
    Points : 886
    Points
    886
    Par défaut
    Petit test simple : au début de adresse.php, tu ajoutes
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_REQUEST['id_cours_tp'];
    Si la partie de ton code qui affiche les cours est correcte, tu devrais visualiser la valeur de $donnees_cours_tp_eleve['id_cours_tp']
    Participez vous aussi !
    Message utile
    Discussion résolue

  15. #35
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    je crois qu'il faut deja savoir la relation entre les deux tables user et cours (n<->n ?)

    si un utilisateur a plusieurs cours
    si un cours est pour plusieurs utilisateurs

    ce qui me semble logique ..... mais j'ai un doute ...

    alors il faut une table pivot pour faire la relation entre les 2 et donc encore un gros travail de conception avant tout codage.

    ce que proposait jreaux62 avec une 3eme table test_relation_cours_use
    $moi= ( !== ) ? : ;

  16. #36
    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 ypcman Voir le message
    Petit test simple : au début de adresse.php, tu ajoutes
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $_REQUEST['id_cours_tp'];
    Si la partie de ton code qui affiche les cours est correcte, tu devrais visualiser la valeur de $donnees_cours_tp_eleve['id_cours_tp']
    J'ai ajouté ce code, il ne m'affiche rien mais c'est logique puisque je n'ai pas choisi un cours sur l'autre page.
    Justement, l'autre page affiche le de la requête SQL qui permet de récupérer les Cours/TP d'un élève.

  17. #37
    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 papajoker Voir le message
    je crois qu'il faut deja savoir la relation entre les deux tables user et cours (n<->n ?)
    Pour l'instant, il n'y en a pas. J'ai un problème conceptuel.

    Je te mets les CREATE TABLE des deux tables :
    test_site_utilisateur
    Code sql : 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
    CREATE TABLE IF NOT EXISTS `test_site_utilisateur` (
      `id_utilisateur` int(11) NOT NULL AUTO_INCREMENT,
      `nom_etablissement_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `nom_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `prenom_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `date_naissance_utilisateur` date NOT NULL,
      `civilite_utilisateur` varchar(12) CHARACTER SET utf8 NOT NULL,
      `sexe_utilisateur` varchar(8) CHARACTER SET utf8 NOT NULL,
      `acces_utilisateur` int(11) NOT NULL DEFAULT '5',
      `email_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `pseudo_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `password_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `code_postal_etablissement_utilisateur` varchar(5) CHARACTER SET utf8 NOT NULL,
      `classe_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `matiereenseignee_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `ville_etablissement_utilisateur` varchar(255) CHARACTER SET utf8 NOT NULL,
      `date_inscription_utilisateur` datetime NOT NULL,
      `date_derniere_connexion_utilisateur` datetime NOT NULL,
      `date_creation_classe_utilisateur` datetime NOT NULL,
      PRIMARY KEY (`id_utilisateur`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
    test_site_cours_tp
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    CREATE TABLE IF NOT EXISTS `test_site_cours_tp` (
      `id_cours_tp` int(11) NOT NULL AUTO_INCREMENT,
      `date_depot_cours_tp` datetime NOT NULL,
      `date_cloture_validation_cours_tp` datetime NOT NULL,
      `titre_cours_tp` varchar(255) CHARACTER SET utf8 NOT NULL,
      `contenu_cours_tp` longtext CHARACTER SET utf8 NOT NULL,
      `type_devoir_cours_tp` int(11) NOT NULL DEFAULT '1',
      `matiere_cours_tp` varchar(255) CHARACTER SET utf8 NOT NULL,
      `nom_auteur_cours_tp` varchar(255) CHARACTER SET utf8 NOT NULL,
      `classe_cours_tp` varchar(255) CHARACTER SET utf8 NOT NULL,
      PRIMARY KEY (`id_cours_tp`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;

    Citation Envoyé par papajoker Voir le message
    si un utilisateur a plusieurs courssi un cours est pour plusieurs utilisateurs

    ce qui me semble logique ..... mais j'ai un doute ...
    Tout à fait !!!
    Citation Envoyé par papajoker Voir le message
    alors il faut une table pivot pour faire la relation entre les 2 et donc encore un gros travail de conception avant tout codage.

    ce que proposait jreaux62 avec une 3eme table test_relation_cours_use
    Est-ce que déjà tu vois des erreurs dans les ?
    Pour la troisième table, je vais la faire.

    PS : J'ai fait la troisième table. A mon avis, il faut changer la requête SQL qui permet de récupérer les cours (pour éviter qu'elle affiche le et affiche les données), la voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT DISTINCT(t1.id_cours_tp), t3.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
    LEFT JOIN test_site_cours_tp t3
    ON t1.id_cours_tp = t3.id_cours_tp
    WHERE t1.pseudo_utilisateur='$pseudo_utilisateur'
    AND t3.type_devoir_cours_tp='1'
    ORDER BY date_cloture_validation_cours_tp
    Citation Envoyé par jreaux62 Voir le message
    Donc... explique-nous ce que tu cherches à faire avec ta requête, dans laquelle figurent ces 2 tables ?
    Dixit : "la requête SQL qui permet de récupérer les Cours/TP d'un élève"
    Avec cette requête SQL, je voudrais lister les cours de l'élève connecté.

    Bonsoir,

    Ce matin, j'ai créé la table "relationnelle". Mais pour l'instant elle est vide donc même si j'adapte la requête SQL (celle pour sélectionner les cours), certes le message d'erreur ne s'affiche plus mais une page blanche s'affiche. Donc, qu'est-ce qu'il faut que je fasse pour que tout marche ?

    On est d'accord maintenant, il y a trois tables :
    -test_site_utilisateur (là où il y a tous les utilisateurs)
    -test_site_cours_tp (là où il y a tous les cours)
    - test_site_relation_cours_tp_utilisateur (table qui permet de faire la liaison entre test_site_utilisateur et test_site_cours_tp)

    Est-ce que dans la requête d'insertion des cours que je fasse en sorte qu'à chaque fois qu'on poste un cours, ça insère l'identifiant du cours dans la table relationnelle (test_site_relation_cours_tp_utilisateur) ?
    Est-ce qu'il faut que je fasse des ALTER TABLE ?

  18. #38
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 104
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 104
    Points : 4 454
    Points
    4 454
    Par défaut
    Citation Envoyé par vinceom92 Voir le message
    Est-ce que dans la requête d'insertion des cours que je fasse en sorte qu'à chaque fois qu'on poste un cours, ça insère l'identifiant du cours dans la table relationnelle (test_site_relation_cours_tp_utilisateur) ?
    On crée toujours un cours indépendant "des utilisateurs".
    mais une fois le cours créé
    dans le page cours il faut pouvoir ajouter des utilisateur (nouveau formulaire) et la !
    a chaque ajout d'utilisateur il faut créer simplement une ligne dans la table relation_cours_tp_utilisateur avec l'id du tp et l'id du cours.
    Mais...
    pour tout simplifier il faut aussi dans cette page pouvoir supprimer un utilisateur = a supprimer une ligne dans relation_cours_tp_utilisateur mais pas supprimer l'utilisateur dans table utilisateur

    AVANT il faut quand meme savoir qui a acces a cette administration car si plusieurs types d'administrateurs alors c'est plusieurs pages
    $moi= ( !== ) ? : ;

  19. #39
    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
    Quand on insère un cours, on choisi la matière et la classe qui sont issues de la base de données...
    Ce sont que les professeurs qui ont accès à cette partie.

    Je vais m'en sortir de ce problème...

    Ce n'est pas
    Citation Envoyé par papajoker Voir le message
    a chaque ajout d'utilisateur il faut créer simplement une ligne dans la table relation_cours_tp_utilisateur avec l'id du tp et l'id du cours.
    mais a chaque ajout de cours/tp il faut créer simplement une ligne dans la table relation_cours_tp_utilisateur avec l'id de l'auteur et l'id du cours/tp.

  20. #40
    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,

    Pour vous tenir au courant, j'essaye de faire ces trois requêtes SQL sur la page d'insertion de cours :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    // Trois requêtes SQL qui permettent de gérer l'affichage du cours - DEBUT
    	// Sélectionnement de l'utilisateur connecté dans la base de données
    	$query_selection_identifiant_cours_tp=mysql_query("SELECT id_cours_tp FROM  test_site_cours_tp WHERE titre_cours_tp='$titre_cours_tp'") or die('Erreur lors de la sélection du Cours\TP)'.mysql_error()); // Envoie une requête à un serveur MySQL
     
    	// Sélectionnement de l'utilisateur connecté dans la base de données
    	$query_selection_utilisateur_connecte=mysql_query("SELECT id_utilisateur FROM test_site_utilisateur WHERE pseudo_utilisateur='$pseudo_utilisateur'") or die('Erreur lors de la sélection du pseudo de l\'utilisateur connecté)'.mysql_error()); // Envoie une requête à un serveur MySQL
     
    	// Insertion de la relation Cours-TP/Utilisateur dans la base de données
    	$query_insertion_relation_cours_tp_utilisateur=mysql_query("INSERT INTO test_site_relation_cours_tp_utilisateur (id_cours_tp,id_utilisateur) VALUES ('$query_selection_identifiant_cours_tp','$query_selection_utilisateur_connecte')") or die('Erreur lors de l\'insertion de la relation Cours-TP/Utilisateur (pour assurer l\'affichage)'.mysql_error()); // Envoie une requête à un serveur MySQL
    // Trois requêtes SQL qui permettent de gérer l'affichage du cours - FIN
    mais ça ne fonctionne (pour l'instant) pas.

    Je vous explique ce que je voudrais faire à travers ces trois requêtes SQL : J'aimerais insérer les identifiants du Cours/TP et de l'utilisateur issus des deux autres tables : test_site_cours_tp et test_site_utilisateur, c'est ça qui ne marche pas (pour l'instant).

    Pouvez-vous me dire si je suis dans la bonne voie et si oui comment insérer le résultat d'un d'une autre table SVP ?

    PS : J'ai aussi essayé cette requête SQL :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    	$query_insertion_relation_cours_tp_utilisateur=mysql_query("INSERT INTO test_site_relation_cours_tp_utilisateur (id_cours_tp,id_utilisateur) SELECT id_utilisateur,id_cours_tp FROM test_site_utilisateur,test_site_cours_tp WHERE pseudo_utilisateur='$pseudo_utilisateur' AND titre_cours_tp='$titre_cours_tp'") or die('Erreur lors de l\'insertion de la relation Cours-TP/Utilisateur (pour assurer l\'affichage)'.mysql_error()); // Envoie une requête à un serveur MySQL
    mais alors elle ne provoque pas d'erreurs mais n'insère rien dans la table relationnelle.

    Finalement, cette requête SQL fonctionne en la mettant après les autres, ça avance !

+ Répondre à la discussion
Cette discussion est résolue.

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