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 :

Insertion données formulaire dans base de données [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Insertion données formulaire dans base de données
    J'ai un gros problème que je dois résoudre au plus vite.
    J'ai crée un mini site avec une base de donnée avec easyphp première page classique identification et mot de passe testés et comparé avec celui de la base OK pas de problème.
    Maintenant dans ma deuxième page je voudrais pouvoir insérer des données provenant d'un formulaire dans ma base de données IMPOSSIBLE rien de se passe ou ce message apparait

    Parse error: parse error in c:\program files\easyphp1-8-modgsi\www\bac\page1.2.php on line 17
    voici le code de mon include

    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
    <?
    $idconnexion=mysql_connect('localhost','root','root')or die("Désolé, connexion impossible au serveur !");
    $bd1=mysql_select_db('Bac') or die("Désolé, connexion à la base impossible");
    ?>
     
    et voici le code de la page contenant le include
    <?
     
    include("connexionbac.php");
     
    if (isset($_POST['examen']))
    {
     
    $examen= $_POST['examen'];
    $epreuve = $_POST['epreuve'];
    $date = $_POST['date'];
    $horairedeb = $_POST['horairedeb'];
    $horairefin = $_POST['horairefin'];
     
    $sql1="INSERT INTO Examen(TypeExamen) VALUES ('$examen');"
    $res1=mysql_query($sql1) or die("Désolé, la requête ne fonctionne pas");
     
    $sql2="INSERT INTO Epreuve (Intitulé, Date, HeureDebut, HeureFin) VALUES ('$epreuve','$date','$horairedeb','$horairefin');"
    $res2=mysql_query($sql2) or die("Désolé, la requête ne fonctionne pas");
    }
    ?>
    Avec ensuite du html contenant les post du formulaire que j'utilise

    SVP quelqu'un peut il me remettre un peu d'espoir je doit présenter ca au Bac dans moins d'une semaine, je passe des heures a chercher.
    MERCI

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Donc ton probleme se situe au niveau de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql2="INSERT INTO Epreuve (Intitulé, Date, HeureDebu ...etc
    c'est ça?
    Est -ce que tu as bien vérifié tout ce qui est accent, espace...etc?
    Ah et je viens de voir qu'il manque des points virgule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $sql1="INSERT INTO Examen(TypeExamen) VALUES ('$examen');";
    $res1=mysql_query($sql1) or die("Désolé, la requête ne fonctionne pas");
    
    $sql2="INSERT INTO Epreuve (Intitulé, Date, HeureDebut, HeureFin) VALUES ('$epreuve','$date','$horairedeb','$horairefin');";
    $res2=mysql_query($sql2) or die("Désolé, la requête ne fonctionne pas");

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    En effet j'avais un problème avec les ; bon après moult tentatives j'ai enfin réussi à insérer un semblant de données dans mas base ceci en ajoutant a la fin du code
    header("location: Page1.3.php");
    Mais le problème maintenant c'est que je ne peut pas passer à la page suivante. ou plutôt si mais j'ai 2 possibilités soit je continue sur la page suivante mais rien ne rentre dans ma base, soit je reste sur cette même page mais le contenu du formulaire entre dans ma base. J'ai vraiment du mal.
    Voila donc mon code maintenant
    et merci pour la réponse

    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
    <?
     
    	include("connexionbac.php");
     
    	if (isset($_POST['typeexamen']) and isset($_POST['epreuve']) and isset($_POST['date']) and isset($_POST['horairedeb']) and isset($_POST['horairefin']))
     
    {
    	$epreuve = $_POST['epreuve'];
    	$date = $_POST['date'];
    	$horairedeb = $_POST['horairedeb'];
    	$horairefin = $_POST['horairefin'];
    	$typeexamen= $_POST['typeexamen'];
     
     
    $sql1="INSERT INTO Epreuve (Intitulé, Date, HeureDebut, HeureFin, TypeExamen) VALUES ('$epreuve', '$date', '$horairedeb', '$horairefin', '$typeexamen')";
    $res1=mysql_query($sql1) or die("Désolé, la requête ne fonctionne pas");
     
    	// direction vers la page suivante
    		header("location: Page1.3.php");
    }
    ?>

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Points : 217
    Points
    217
    Par défaut
    Bon alors je suis pas sur de suivre à 100%...
    Pourquoi utilises tu header?
    Si jamais tes variables n'existent pas ( tes isset sont faux ) que fais tu ?
    Normalement la tes données sont entres dans la base (si elles existent) et donc ensuite tu affichage un truc du style : "Felicitations vos données ont bien ete enregistrees", non?

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    voici mon code définitif qui fonctionne puisque les données entre bien dans ma base
    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
    <?
    	include("connexionbac.php");
     
    	if (isset($_POST['typeexamen']) and isset($_POST['epreuve']) and isset($_POST['date']) and isset($_POST['horairedeb']) and isset($_POST['horairefin']))
     
    {
    	$epreuve = $_POST['epreuve'];
    	$date = $_POST['date'];
    	$horairedeb = $_POST['horairedeb'];
    	$horairefin = $_POST['horairefin'];
    	$typeexamen= $_POST['typeexamen'];
     
     
    $sql1="INSERT INTO Epreuve (Intitulé, Date, HeureDebut, HeureFin, TypeExamen) VALUES ('$epreuve', '$date', '$horairedeb', '$horairefin', '$typeexamen')";
    $res1=mysql_query($sql1) or die("Désolé, la requête ne fonctionne pas");
     
     
    	// direction vers la page suivante
     
    header("location: Page1.3.php");
    }
    ?>
    Bon a présent 2 problèmes
    1 comment utiliser les dates en français avec easyphp car je suis obligé de les taper en anglais dans le formulaire.
    2 je souhaite afficher le résultat d'une requête qui me parait assez simple mais pourtant j'obtiens encore et toujours un parse error a la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $res=mysql_query($sql) or die("Désolé, la requête ne fonctionne pas");
    dans le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?
    	include("connexionbac.php");
    	$sql="Select Intitulé, Date, HeureDebut, HeureFin, TypeExamen From Epreuve
    where NumEpreuve=(select MAX (NumEpreuve) from Epreuve;"
     
    $res=mysql_query($sql) or die("Désolé, la requête ne fonctionne pas");
     
    echo"$res";	
    ?>
    HELP ME je deviens fou on peut y passer des heures a changer plein de chose sans que ça marche c'est horrible!!!

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Salut

    L'erreur "parse error" signale le plus souvent un problème de ponctuation (point, quote, parenthèse...) en trop ou en moins. En l'occurence, tu as une parenthèse ouverte non fermée. Et tu peux afficher la requète et le message d'erreur mysql dans le die.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql="Select Intitulé, Date, HeureDebut, HeureFin, TypeExamen From Epreuve
    where NumEpreuve=(select MAX (NumEpreuve) from Epreuve)"
     
    $res=mysql_query($sql) or die("Désolé, la requête $sql ne fonctionne pas. Erreur : ".mysql_error());
    Pour autant que je sache, les dates dans une base de données mysql sont toujours au format anglais, mais il est possible de les manipuler.
    Pour plus d'explications
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Points : 45
    Points
    45
    Par défaut meme probleme que westlaux
    Bonjour
    je suis debutante en php et comme premier test pour recuperer les donnes d'un formulaire dans une base de donnees, j'ai créé un formulaire de news à 2 champs :
    -titre
    -contenu

    Par ailleurs j'ai créé une base 'test' dans laquelle j'ai une table 'news' (qui contient déjà 2 lignes), cette table news a 3 champs : id (en auto-incrément), titre et contenu.

    Voici le code de mon fichier formulaire.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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    <title> Formulaire test </title>
    </head>
    <body bgcolor=pink>
    <h1>Voici le formulaire pour la table news:</h1>
     
     
    	<form name="form-test" method="post" action="cible-form.php" >
     
    		<b>Titre: </b> <br>
                <input type="text" name="titre" >
    		<br><br>	
     
    		<b>Contenu:</b> <br>
                <textarea name="contenu" rows="4" cols="70"  > </textarea>
     
    		<br><br><br>
    		<input type="submit" value="Envoyer"> 
     
        </form>
     
    	<?php
    	mysql_connect("localhost", "root", "");
    	mysql_select_db("test");
    	if(isset($_POST['titre']))
    		{
    			$titre=htmlentities($_POST['titre'], ENT_QUOTES);
    			$contenu=htmlentities($_POST['contenu'], ENT_QUOTES);
    			$contenu=nl2br($contenu);
     
    			$req="INSERT INTO news VALUES('', '".$titre."', '".$contenu."');";
    			$res=mysql_query($req) or die(mysql_error());
     
    		}
    	mysql_close();
    	?>
     
    </body>			 		
    </html>
    Lorsque je remplit le formulaire et que je l'envoie, ma table news ne se remplit pas!!!
    Je ne vois pourtant pas où est l'erreur dans mon code.
    Si quelqu'un pouvait m'aider je l'en remercie d'avance.

    honeydew

  8. #8
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    dans "action" du formulaire tu as mis cible-form.php, donc ce que ca fait quand tu appuies sur le submit c'est charger le script cible-form.php
    Or toi, tu as codé l'insertion dans la base de données dans le fichier formulaire.php il faut donc mettre ce script dans l'attribut action de ton formulaire.

  9. #9
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 50
    Points : 45
    Points
    45
    Par défaut
    Effectivement c'est ça qui n'allait pas!
    Merci koopajah de cette reponse rapide!

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

Discussions similaires

  1. Insertion de date dans base de données
    Par amine2208 dans le forum Langage
    Réponses: 1
    Dernier message: 06/04/2013, 19h57
  2. Mise en forme du champs de formulaire dans base de données
    Par yesnie dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/06/2010, 14h58
  3. [MySQL] Insertion lien image dans base de données
    Par Addict` dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 23/02/2009, 13h40
  4. [E-03] insertion de lignes dans base de données
    Par alainmante dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/10/2008, 18h01
  5. Réponses: 9
    Dernier message: 28/08/2007, 09h18

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