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 :

création d'une table en ne passant pas par phpMyAdmin


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut création d'une table en ne passant pas par phpMyAdmin
    Bonjour,

    je sais que la question va paraître extrêmement triviale à un grand nombre d'entre vous, mais voilà, j'ai beau faire, si je parviens sans difficulté à interroger mes tables, créer une nouvelle table semble différent.

    Voici ce que je fais pour interroger ma table, chose courante en php:
    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
     
    <?php
    $connexion = mysql_connect ("localhost", "projet", "1234");
    mysql_select_db("projet");
     
    // ok, me voilà connecté à ma base de données "projet". Je veux interroger ma table "qcm" qui se trouve dans cette base
     
    $requete = "SELECT ID_question, Libelle_question FROM qcm where ID_question = 1";
    $resultat = mysql_query($requete);
    ?>
    <html>
    <head>
    <title>Document sans nom</title>
    </head>
     
    <body>
    <?php 
    $qcm = mysql_fetch_array($resultat);
    echo "ID de la question: ".$qcm['ID_question']." et son libellé: ".$qcm['Libelle_question'];
    ?>
    </body>
    </html>
    et j'obtiens bien ce que je veux.

    A présent, je veux changer ma requête et créer une nouvelle table:


    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <?php
    $connexion = mysql_connect ("localhost", "projet", "1234");
    mysql_select_db("projet");
     
    if(isset($_POST['bouton']))
    {
    $requete = "CREATE TABLE ".$_POST['nomQCM']."(
    ID_question int (11) NOT NULL AUTO_INCREMENT,
    Lebelle_question varchar (200) NOT NULL,
    Reponse1 varchar (100) NOT NULL,
    Reponse2 varchar (100) NOT NULL,
    Reponse3 varchar (100) NOT NULL,
    PRIMARY KEY (ID_question))";
     
    $resultat = mysql_query($requete);
    }
     
    ?>
    <html>
    <head>
    <title>Document sans nom</title>
    </head>
     
    <body>
     
    <form if="monform" name="form1" method ="post" action="http://localhost/phpmyadmin">
       <p>
             <label>Nom du QCM:
                  <input type = "text" name="nomQCM" />
             </label>
       </p>
       <p>
             <label>Nom du QCM:
                  <input type = "submit" name="bouton" />
             </label>
       </p>
    </form>
     
    </body>
    </html>
    et quand je suis redirigé vers phpMyAdmin... pas de table supplémentaire créée.

    Pour ceux qui se demandent l'utilité d'une telle manoeuvre, je dois réaliser un projet où des professeurs s'identifient, créent leurs qcm, mettent leurs questions et réponse, et créent autant de qcm qu'ils veulent.

    Si jamais quelqu'un voit pourquoi ça ne fonctionne pas... pour le moment, je ne vois pas!

    Merci par avance,
    Johnny

  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
    1 - Il manque un guillement dans ta fonction mysql_connect()
    2 - Tu as mis $POST au lieu de $_POST
    3 - Ton formulaire a pour action une autre page alors que c'est lui qui doit faire le traitement.
    4 - Tu insères des données dans une requête sans les proteger.

    Sinon, sur le fond, créer une table par QCM c'est une mauvaise idée.
    Par exemple si tu voulais savoir combien ton outil propose de questions en tout, tu ne peux pas.
    Même plus basiquement : comment vas-tu retrouver les tables de questions dans ta base ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut Retrait de la citation
    Bonjour,

    tout d'abord, merci. J'ai corrigé pour le $_POST et le guillemet.

    J'ai renvoyé l'action sur la bonne page.

    Pour la protection des données, j'avoue que je comptais gérer ça après (mauvais réflexe?)

    Par contre, voilà comment je voyais la chose:

    Chaque prof a un identifiant, un mot de passe et une base de données de qcm propre (propre au départ).

    Quand le professeur s'identifie, je compte (mais ça se trouve, ce n'est pas possible, je suis débutant dans tout cela) faire en sorte que le professeur puisse choisir le qcm qu'il veut éditer (imaginons qu'il enseigne trois matières, et qu'il doit faire 3 qcm différents, il peut créer 3 tables de qcm différentes)
    Une fois qu'il est sur le bon qcm, il mets ses questions et propositions de réponse au fur et à mesure.

    Est-ce que tu penses que l'on peut implémenter quelque chose de ce type?

    Ou alors, je sais que le professeur a 3 classes, et je ne lui permets d'avoir que 3 qcm (mais que se passe-t-il s'il veut mettre des qcm en ligne chaque mois, pour que les élèves s'entraînent sur internet?)

    Il faut que je réfléchisse à une implémentation intelligente.

    Mais donc, au niveau interface, je verrais quelque chose du style:

    Liste des qcm disponibles: tableau + liens (voir, modifier, supprimer)
    Editer un nouveau qcm
    Déconnexion

    Qu'en penses-tu?

    Johnny

  4. #4
    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
    Ton principe est correct, c'est la facon dont tu veux le réaliser qui ne va pas.

    Fais plutot une table QCM qui liste tes QCM (libellé, créateur etc.)
    et une seule table avec le contenu de tous les QCM en ajoutant donc une colonne pour indiquer l'id du QCM.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 207
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Ton principe est correct, c'est la facon dont tu veux le réaliser qui ne va pas.

    Fais plutot une table QCM qui liste tes QCM (libellé, créateur etc.)
    et une seule table avec le contenu de tous les QCM en ajoutant donc une colonne pour indiquer l'id du QCM.
    Je vois ce que tu veux dire, mais en établissant le MCD, j'ai pensé à ceci:

    - faire une table qcm, comme tu me le proposais, avec ID, libellé, question et les 3 réponses
    - faire une table réunissant l'id de la matière, l'id du qcm, l'id du prof créateur, l'id de la classe.

    Qu'est-ce que tu en penses?

    Il y aura bien sûr également une table élève, une table matière, une table professeur.

    Je te joins le MCD. Penses-tu que ça soit viable?

Discussions similaires

  1. Réponses: 8
    Dernier message: 09/05/2006, 11h08
  2. Réponses: 4
    Dernier message: 19/10/2005, 11h26
  3. savoir si une table est masquée ou pas
    Par scully2501 dans le forum Access
    Réponses: 13
    Dernier message: 22/09/2005, 12h19
  4. Création d'une table avec foreign key
    Par lepierre dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/09/2004, 14h20
  5. INTERBASE Création d'une table
    Par Corben dans le forum InterBase
    Réponses: 2
    Dernier message: 19/06/2004, 20h55

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