{MySQL} Ecrire dans une base a partir de variable

Fermé
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010 - 16 déc. 2009 à 17:47
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010 - 17 déc. 2009 à 00:26
Bonjour,
Je désire rajouter des données dans une table MySQL via une page PHP .
Pour résumer, l'utilisateur a accès a un formulaire , il remplis les champs après validation, il es emmené sur une nouvelle page ou il a un aperçu de ce qu'il a écris, a partir de la, il valide et j'aimerai que les données soit rajouter dans ma base.
Les pages sont affiché via un include dans le corp de la page1.

Voici le code de ma première page (celle ou les données sont rappelé sous forme de variable)

//page3.php

<div id="corps">


<form method="post" action="page1.php?page=page9.php">
<p>
<h1> Pour résumer </h1> <br/>
Voici le titre VO :<?php echo $_POST['Titre_VO']; ?> <br />
Voici le titre VF : <?php echo $_POST['Titre_VF']; ?> <br />
Le Type :<?php echo $_POST['Type']; ?> <br />
Le Genre :<?php echo $_POST['Genre']; ?> <br />
Il es sortie en :<?php echo $_POST['Annee_sortie']; ?> <br />
A etais tournée au :<?php echo $_POST['Lieux_Tournage']; ?> <br />
Voici le résumé :<?php echo $_POST['Resume']; ?> <br />
Et Pour finir l'auteur :<?php echo $_POST['Prenom_Rea']; echo $_POST['Nom_Rea']; ?> <br />

</p>


<p>
<input type="submit" value="Valider" />
<li><a href="page1.php?page=page2.html">Une erreur, recommencer ici!</a></li>

</p>

</div> // l'affichage se passe sans problème
--------------------------------------------------------------------------------------------------------------------------------------
---------------------------Ici le code de ma page censé écrire dans ma base-------------------------------------------- --------------------------------------------------------------------------------------------------------------------------------------
//ici page9.php

<div id="corps">

<?php
$info = '';

// Si le formulaire a été envoyé
if (isset ($_POST['valider']))
{
$Titre_VO = $_POST['Titre_VO'];
$Titre_VF = $_POST['Titre_VF'];
$Type = $_POST['Type'];
$Genre = $_POST['Genre'];
$Annee_sortie = $_POST['Annee_sortie'];
$Lieux_Tournage = $_POST['Lieux_Tournage'];
$Resume = $_POST['Resume'];
$Nom_Rea = $_POST['Nom_Rea'];
$Prenom_Rea = $_POST['Prenom_Rea'];

// Si l'un des champs est vide, lancer une erreur
if (empty ($Titre_VO) || empty($Titre_VF) || empty($Type) || empty ($Genre) || empty($Annee_sortie) || empty($Lieux_Tournage) || empty ($Resume) || empty($Nom_Rea) || empty($Prenom_Rea))
$info = 'Veuillez renseigner tous les champs';
else
{
// Connexion à la bdd
mysql_connect("localhost", "nom_ma_base","Mot_de_Passe") or die("Echec de connexion au serveur.");;
mysql_select_db("Navet_Paradise") or die("Echec de sélection de la base.");;

// Insertion dans la bdd
$query = "insert into news (Titre_VO,Titre_VF,Type,Genre,Annee_sortie,Lieux_Tournage,Resume,Nom_Rea,Prenom_Rea) values('$Titre_VO','$Titre_VF','$Type','$Genre','$Annee_sortie','$Lieux_Tournage','$Resume','$Nom_Rea','$Prenom_Rea')";


if (mysql_query($query))
$info = 'Succès';
else
$info = 'Erreur !';

//mysql_close();
}
}

?> </div>

Je n'obtiens ni erreur ni rajout ni même quoique ce soit d'ailleurs..... j'ai vraiment du mal a voir mon erreur ou si je me suis complètement planté dans le code.... D'ailleurs je ne me suis pas encore occuper de la sécurité mais il me semble que htmlentities devrait pas mal m'y aider...

Qu'en pensez vous?

Merci de votre aide!

15 réponses

toma_f_1 Messages postés 89 Date d'inscription dimanche 29 novembre 2009 Statut Membre Dernière intervention 16 décembre 2009 7
16 déc. 2009 à 17:58
echo $info...

if (isset ($_POST['valider'])) c'est pas 'Valider' plutôt ? a moins que la casse ne compte pas
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
16 déc. 2009 à 23:25
vous en etes ou de cette demande? avancé ou pas?
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
16 déc. 2009 à 23:50
Pas trop! Alors j'ai décider de simplifier pour l'instant, mon formulaire envoi bien les variables (je peut les afficher dans ma page PHP via un <?php echo $_POST['Titre_VO']; ?> ) Mais ça ne vas pas plus loin ça ne rajoute rien dans ma base...

<div id="corps">


<?php
$info = '';

// Connexion à la bdd
mysql_connect("localhost","XX","XX") or die("Echec de connexion au serveur.");;
mysql_select_db("Navet_Paradise") or die("Echec de sélection de la base.");;

// Insertion dans Film
mysql_query("INSERT INTO Film VALUES
('','$_POST["Titre_VO"]','$_POST["Titre_VF"]','$_POST["Type"]','$_POST["Genre"]','$_POST["Annee_sortie"]','$_POST["Lieux_Tournage"]','$_POST["Resume"]','$_POST["Nom_Rea"]','$_POST["Prenom_Rea"]')";

if (mysql_query($query))
$info = 'Succès';
else
$info = 'Erreur !';

mysql_close();



?>

</div>


Si l'on vois une solution ça m'intéresse beaucoup!!!!!

Merci d'avance
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
16 déc. 2009 à 23:53
Pour bien identiffier ce qui ne va pas.
Peux-tu exécuter en base la partie SQL de ce code
mysql_query("INSERT INTO Film VALUES
('','$_POST["Titre_VO"]','$_POST["Titre_VF"]','$_POST["Type"]','$_POST["Genre"]','$_POST["Annee_sortie"]','$_POST["Lieux_Tournage"]','$_POST["Resume"]','$_POST["Nom_Rea"]','$_POST["Prenom_Rea"]')";

REmplace les variables par des valeurs existantes.
Si la requete répond c'eest un souci de PHP ...
Par contre tu utilise une des 2 méthodes d'insert qui implique de passer tous les champs de la table sinon ça bug..
J'attends ton test...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
17 déc. 2009 à 00:00
Alors j'ai ecris
<div id="corps">


<?php
$info = '';

// Connexion à la bdd
mysql_connect("localhost","root","root") or die("Echec de connexion au serveur.");
mysql_select_db("Navet_Paradise") or die("Echec de sélection de la base.");

// Insertion dans Film
mysql_query("INSERT INTO Film VALUES
('','az','az','az','az','1985','az','az','az','az')";

mysql_close();



?>

</div>

Est ce bien ca que tu me demandé?

et j'ai eu droit a

Parse error: syntax error, unexpected '"', expecting T_STRING or T_VARIABLE or T_NUM_STRING in /Applications/MAMP/htdocs/A travailler/page3.php on line 13
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
17 déc. 2009 à 00:03
Oui mais ton code SQL est a exécuter directement en base de données sans passer par le programme (php).
Si ça fonctionne ça vaut dire que tout est ok pour mysql c'est que PHP n'a pas compris un truc... teste je t'attends.
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
17 déc. 2009 à 00:05
Bon je viens de me rendre compte de ce que je viens de tester! vas falloir que je songe a dormir... Mais tant que ca ne marche pas le dodo est compromis....

Merci de vos aide

Mahara
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
17 déc. 2009 à 00:06
J'ai l'erreur suivante

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("INSERT INTO Film VALUES ('','$_POST["Titre_VO"]','$_POST["Titre_V' at line 1

enfin

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("INSERT INTO Film VALUES ('','az','az','az','az','1985','az','az',' at line 1


MAhara
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
17 déc. 2009 à 00:08
Si tu passes à ta base des trucs du style ,'$_POST["Titre_V'] elle ne pas FORCEMENT pas comprendre...
FAut remplacer par les bonnes valeur supposées...
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
17 déc. 2009 à 00:09
c'est mon copier coller que j'ai foiré... j'avais mis des valeurs "test"

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql_query("INSERT INTO Film VALUES ('','az','az','az','az','1985','az','az',' at line 1


Mahara
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
17 déc. 2009 à 00:15
Donc s'il ne fait pas l'insertion il y a un problème de syntaxe.
Peux tu me faire voir la structure de cette table ? Liste des champs...stp

Et puis c'est pas du SQL ça -->'mysql_query("
ça n'a rien à faire dans ton code de test faut juste mettre INSERT INTO...

essaye encore
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
17 déc. 2009 à 00:21
Voici ma base


-- Base de données: `Navet_Paradise`
-- Structure de la table `Film`
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
17 déc. 2009 à 00:22
Je viens de réessayer est ça marché! cela a bien étais enregistré...

Mahara
0
moderno31 Messages postés 870 Date d'inscription mardi 23 juin 2009 Statut Membre Dernière intervention 8 août 2012 92
17 déc. 2009 à 00:23
si tu as msn rejoint moi. je t'envoie en message privé mn mail
0
Mahara Messages postés 20 Date d'inscription lundi 14 décembre 2009 Statut Membre Dernière intervention 9 mars 2010
17 déc. 2009 à 00:26
Contact rajouté, merci de ton aide!

Mahara
0