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

Langage SQL Discussion :

[debutante] récupérer une variable


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Points : 111
    Points
    111
    Par défaut [debutante] récupérer une variable
    Bonjour à tous!

    J'envoie 3 données via un bouton :
    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
    <form method="get" target="Resultat" action="Enregistrer.php">
       <table border="1" align="center" width="750">
       <tr>
       <td width="165">Elève :
             		<select name="eleve" size="1">
    				<?php				
    				  foreach($eleves as $eleve) 
    					{ echo "\t\t\t<OPTION>$eleve</OPTION>\n";
    					}
    				?>
    				</select>
       </td>
       <td width="165">Matière :
       		    	<select name="matiere" size="1">
    				<?php				
    				  foreach($matieres as $matieres) 
    					{ echo "\t\t\t<OPTION>$matieres</OPTION>\n";
    					}
    				?>
    				</select>
       </td>
       <td width="165">Note : <input type="text" size="2" maxlength="2" name="note"></td>
       <td width="165"><input type="submit" width="100" value="Enregistrer"></td>
       </tr>
       </table>
       </form>
    Ces trois données sont donc "eleve","matiere" et "note".

    J'essaye de récupérer ces données pour ensuite créer une nouvelle ligne dans ma base de donnée. Je sais que l'on peut les récupérer en faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo $_GET['eleve'];
    echo $_GET['matiere'];
    echo $_GET['note'];
    Et ça marche très bien! MAIS quand je mets ça ensuite dans ma requète ça ne marche plus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO baseTotoTata VALUES ('', '$_GET['eleve']', '$_GET['matiere']', '$_GET['note']', '')");
    Pourriez-vous m'aider svp?
    Merci beaucoup!
    aud-

  2. #2
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par canary Voir le message
    ça ne marche plus :
    Qu'est-ce qui ne marche plus ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO baseTotoTata VALUES ('', '$_GET['eleve']', '$_GET['matiere']', '$_GET['note']', '')");
    A première vue, je dirais que la première colonne de la table, et peut-être aussi la dernière, sont de type numérique et n'acceptent pas les chaînes vides.

    D'une manière générale, il vaut mieux nommer les colonnes que l'on alimente, ça évite ce genre de problème. Ainsi vous ne nommez que les colonnes que vous alimentez et les autres prennent leur valeur par défaut.

    On peut avoir la structure de la table 'baseTotoTata' ?
    Bizarre comme nom de table ! Ce ne serait pas plutôt le nom de la base de données ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Points : 111
    Points
    111
    Par défaut
    J'ai fait quelques modifications : j'ai changé le nom de la table. Voici un extrait de la 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
    42
    43
    -- phpMyAdmin SQL Dump
    -- version 3.1.1
    -- http://www.phpmyadmin.net
    --
    -- Serveur: localhost
    -- Généré le : Dim 22 Mars 2009 à 10:03
    -- Version du serveur: 5.1.30
    -- Version de PHP: 5.2.8
     
    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
     
    --
    -- Base de données: `baseTotoTata `
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `GestionNotes`
    --
     
    CREATE TABLE IF NOT EXISTS `GestionNotes` (
      `ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
      `nomEleve` varchar(100) NOT NULL,
      `matiere` varchar(25) NOT NULL,
      `note` decimal(10,0) NOT NULL DEFAULT '0',
      `appreciations` text NOT NULL,
      KEY `ID` (`ID`)
    ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=57 ;
     
    --
    -- Contenu de la table `GestionNotes`
    --
     
    INSERT INTO `GestionNotes` (`ID`, `nomEleve`, `matiere`, `note`, `appreciations`) VALUES
    (1, 'Audrey', 'Maths', '4', 'Peux mieux faire !'),
    ......
    Ma requète qui ne marche pas est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO gestionnotes (`ID`, `nomEleve`, `matiere`, `note`, `appreciations`) VALUES('', '$_GET['eleve']', '$_GET['matiere']', '$_GET['note']', '')");
    Pourtant si je force l'écriture, la ligne est bien écrite dans la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO gestionnotes (`ID`, `nomEleve`, `matiere`, `note`, `appreciations`) VALUES('', 'toto', 'francais', '10', 'pasbien')");
    L'erreur affichée est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\Documents and Settings\Tata\Mes documents\INSTALL\PROG-ECOLE\WampPHP\wamp\wamp\www\SiteAud\Enregistrer.php on line 15
    Que dois-je modifier pour que cela fonctionne svp?
    Merci par avance
    Aud-

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Points : 111
    Points
    111
    Par défaut
    bon bah j'ai trouvé toute seule! pour ceux que ça interesse voici la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $eleve = $_GET['eleve'];
    $matiere = $_GET['matiere'];
    $note = $_GET['note'];
    mysql_query("INSERT INTO gestionnotes (`ID`, `nomEleve`, `matiere`, `note`, `appreciations`) VALUES('', '".$eleve."'  , '".$matiere."', '".$note."', '')");
    merci quand meme
    je reviendrai vers vous prochainement c'est sur!lol
    Aud-

  5. #5
    Expert éminent sénior
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Comme ID est auto-incrémenté, tu aurais pu aussi te contenter de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("INSERT INTO gestionnotes (`nomEleve`, `matiere`, `note`, `appreciations`) VALUES('$eleve'  , '$matiere', '$note', '')");
    J'ajouterais que dans ton modèle, tu devrais avoir une table Matieres et une table Eleves et avoir dans gestionnotes l'identifiant de cet élève et de cette matière plutôt que répéter leurs nom.
    La répétition du nom est de la redondance et n'est pas conforme à la normalisation des bases de données, peut entraîner des erreurs de saisie et donc des données inexploitables ou des résultats de requêtes faux par la suite.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    426
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 426
    Points : 111
    Points
    111
    Par défaut
    oui tout a fait!!
    je viens de faire les changements et ça me simplifie la vie en plus!
    Merci beaucoup

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

Discussions similaires

  1. [Ant] Récupérer une variable d'envionnement
    Par lionel69 dans le forum ANT
    Réponses: 4
    Dernier message: 25/01/2007, 11h22
  2. Récupérer une variable --> Javascript+CSS
    Par Skarlix dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/08/2005, 17h01
  3. [Applet] récupérer une variable PHP ?
    Par Shiryu44 dans le forum Applets
    Réponses: 10
    Dernier message: 22/03/2005, 12h39
  4. [JSTL] Récupérer une variable du style <%String bob = "bobby"%>
    Par nickoshiba dans le forum Taglibs
    Réponses: 2
    Dernier message: 15/03/2005, 09h50
  5. récupérer une variable
    Par boucher_emilie dans le forum ASP
    Réponses: 9
    Dernier message: 05/07/2004, 11h34

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