Insert into MYSQL avec PHP

Résolu/Fermé
cestmoi - 29 oct. 2008 à 14:16
cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008 - 29 oct. 2008 à 17:38
Bonjour,

J'ai une problème avec mon petit script php. Ca connect avec la base de données, mais il ne insért rien et je ne comprends rien (c'est pas difficile pour moi de rien comprendre)

voila mon code


<?php
define ("NOM","mon_nom" );
define ("PASSE", "mon_mot_de_passe" );
define ("SERVEUR", "mon_serveur" );
define ("BASE", "mon_nom" ); -- c'est free
$nom = $_POST['surname'];
$prenom = $_POST['firstname'];
$email = $_POST['email'];
$vetement_type=$_POST['clothing'];
$qui=$_POST['qui'];
$taille=$_POST['size'];

$db = mysql_connect(SERVEUR, NOM, PASSE) or
die('Erreur de connexion à la base de données <br />Erreur: '.mysql_error());
mysql_select_db(BASE, $db);
$result = mysql_query("INSERT INTO bourse (Nom,Prenom,Email,type,Taille,Qui) VALUES('$nom','$prenom','$email','$vetement_type','$taille','$qui')");

if (!$result)
{
die('Requête invalide : ' . mysql_error());
}
else
{ ?>
<div id="center_text">Votre vêtement a bien été prise en compte.<br/></div>
<?php
}
mysql_close();
A voir également:

11 réponses

XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010 34
29 oct. 2008 à 14:31
Salut je ne m'y connais pas trop en PHP mais sinon j'ai des connaissances dans d'autres langages. Apparament ici ton code est bon mais il te manque une chose. En effet, tu déclares bien ta requête mais tu ne l'éxècute pas réellement juste en mettant :

$result = mysql_query("INSERT INTO bourse (Nom,Prenom,Email,type,Taille,Qui) VALUES('$nom','$prenom','$email','$vetement_type','$taille','$qui')");

Maintenant il te faut trouver le bout pour l'executer.
1
cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008 1
29 oct. 2008 à 14:38
Merci

Je ne me connais pas en php non plus :) mais il me semble (de tous ce que j'ai lu) que ça execute bien ma requête. Je me remets à la recherche.
1
Re-bonjour

J'ai oublié de dire que je reçois bien le message que le vêtement a été pris en compte et je ne reçois aucune message d'erreur.

Merci d'avance

Moi
0
XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010 34
29 oct. 2008 à 14:36
Désolé, en fait mysql_query permet d'executer la requête donc tu avais raison.
Ne faut-il pas mettre des quote/guillemets pour encadrer le nom des champs ?
0

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

Posez votre question
InAme19 Messages postés 539 Date d'inscription samedi 13 septembre 2008 Statut Membre Dernière intervention 29 novembre 2012 62
29 oct. 2008 à 14:41
Ton mysql_close(); doit être entre tes balises <?php et ?>
0
XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010 34
29 oct. 2008 à 14:45
Oui mais le problème ne vient pas de là car la requête ne s'execute pas..
0
XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010 34
29 oct. 2008 à 14:44
Essaies ca :
$result = mysql_query("INSERT INTO bourse (Nom,Prenom,Email,type,Taille,Qui) VALUES('$nom','$prenom','$email','$vetement_type','$taille','$qui');", $db)

Dis moi quoi stp ;)
0
cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008 1
29 oct. 2008 à 14:59
En fait, j'ai continué avec mes tests et ça semble que le 'insert' fonctionne bien (j'ai bien ajouté le balise ?> )
MAIS, j'ai fait un 'echo' de mes variables et les variables sont vide - donc, il ne sont pas insérer.

Il me semble maintenant que mon problème vient de mon html - donc je recommence mes tests

Vous connaissez html par chance ;)
0
XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010 34 > cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008
29 oct. 2008 à 15:00
Uhm moi je connais oui pourquoi pas toi ???!!! ò_Ô
0
cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008 1 > XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010
29 oct. 2008 à 15:04
Pas beaucoup - donc, je galère.

C'est mon premier page *snif*
0
XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010 34 > cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008
29 oct. 2008 à 15:28
Je peut peut-être t'aider ?
0
cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008 1 > XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010
29 oct. 2008 à 15:47
Voila mon code

<HTML>
<HEAD>
<TITLE>La Bourse aux Vêtements</TITLE>
<STYLE TYPE="text/css">
TD {color:blue}
TD.a {color:red;font-family: courier;font-size:80%}
TD.b {color: green}
</STYLE>
</HEAD>

<BODY>
<FORM ACTION="ins_donnees.php" enctype="text/plain" METHOD="POST">
<table>
<caption><H1> Please enter your clothes one by one, pressing submit to send each piece of clothing to our database</H1></caption>
<tr>
<td rowspan=3 class="a"><b>Détails : </b>
<td class="b"> Surname :
<td colspan="2"><input type="text" name="surname" size="20">
<tr>
<TD class="b"> First name :
<tb colspan="2"><input type="text" name="firstname" size="20">
<tr>
<td class="b">Email address :
<tb colspan="2"><input type="text" name="email" size="25">

<tr><td colspan=4><hr>

<tr>
<td class="a" rowspan="5"><b>Vêtements:</b>
<td class="b" align="center">Type of clothing
<td align=left>
<select size="3" name="clothing">
<option>Trousers</option>
<option>snowsuit</option>
<option>socks</option>
<option>jumper</option>
</select>

<tr><td colspan=3><hr>

<tr>
<td class="b" align="center">Who for
<td align=left>
<ul>
<li><input type="radio" name="qui" value="Man"> Homme
<li><input type="radio" name="qui" value="woman"> Femme
<li><input type="radio" name="qui" value="Boy"> Garçon
<li><input type="radio" name="qui" value="Girl"> Fille
</ul>

<tr><td colspan=3><hr>

<tr>
<td class="b" align="center">Size
<td align=left>
<select size="3" name="size">
<option>36</option>
<option>38</option>
<option>40</option>
<option>42</option>
<option>44</option>
<option>46</option>
</select>

<tr><td colspan=3><hr>


<button type="submit" name="button1" value="Envoyer">Envoyer</button>

</table>
</form>
</body>
</html>



Si j'execute cette code en local sur mon ordinateur avec action="mailto:mon_email" je vois bien que les paramètres sont remplies, mais dés que j'utilise php ça semble que les paramètres sont vides

donc le code php avec les echos

<?php
define ("NOM","mon nom" );
define ("PASSE", "mon_mot_de_passe" );
define ("SERVEUR", "sql.free.fr" );
define ("BASE", "mon nom" );
$nom = $_POST['surname'];
$prenom = $_POST['firstname'];
$email = $_POST['email'];
$vetement_type=$_POST['clothing'];
$qui=$_POST['qui'];
$taille=$_POST['size'];

$db = mysql_connect(SERVEUR, NOM, PASSE) or
die('Erreur de connexion à la base de données <br />Erreur: '.mysql_error());
mysql_select_db(BASE, $db);
$result = mysql_query("INSERT INTO bourse (Nom,Prenom,Email,type,Taille,Qui) VALUES('$nom','$prenom','$email','$vetement_type','$taille','$qui')");
echo "surname is $nom";
echo "prenom is $prenom";
echo "email is $email";
echo "vetement_type is $vetement_type";
echo "qui is $qui";
echo "taille is $taille";

if (!$result)
{
die('Requête invalide : ' . mysql_error());
}
else
{ ?>
<div id="center_text">Votre vêtement a bien été prise en compte.<br/></div>
<?php
}
mysql_close();
?>


je recois aucune erreur et il semble, en fait, qu'un insert est fait, car je vois une ligne dans la base de données, mais avec que les nulls remplis (default null) et les autre champs sont vides (j'ai maintenant 4 records dans la base mais les champs sont vide.

La table est declaré avec toutes les colonnes en varchar2 et le interclassment est latin1_general_ci. Je n'ai pas fait les fautes de frappe (il me semble) entre les noms des colonnes et mon insert.

Si tu peux m'aider je serais heureuse :)

Malheureusement, je dois aussi travailler sur Oracle (mon 'vrai' métier) au même temps - donc, si tu as les problèmes en Oracle, je pourrais t'aider :)
0
XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010 34
29 oct. 2008 à 16:17
Re,
essaie ca :

$result = "INSERT INTO bourse (Nom,Prenom,Email,type,Taille,Qui) VALUES('$nom','$prenom','$email','$vetement_type','$taille','$qui')";

mysql_query($result)

En fait tu stockes dans $result ta requête et dans une ligne à part, t'execute ta requête en utilisant ta variable..
0
cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008 1
29 oct. 2008 à 17:20
toujours pas de résultât - je veux dire, je crée bien une ligne dans ma table, mais sans données.
0
XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010 34
29 oct. 2008 à 17:24
Bah écoute je suis désolé mais là je planche... Cependant, tu peux regarder ici : http://www.infos-du-net.com/forum/267347-21-lien-formulaire-html-base-donne , le problème a été résolu !
0
cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008 1
29 oct. 2008 à 17:28
Alors, des nouvelles - j'ai mis des valeurs en dur dans le mysql insert (au lieu des paramètres) et tous fonctionne à la merveille - donc, vraiement un problème de recuperation des paramètres entre le html et le php.

Je continuerai demain, ou ce soir à la maison, car il faut que je termine mon programme Oracle :(

Merci pour l'aide
0
XatOr Messages postés 742 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 5 décembre 2010 34
29 oct. 2008 à 17:34
De rien, bon courage !
0
cest_moi Messages postés 7 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 29 octobre 2008 1
29 oct. 2008 à 17:38
Problème résolu!

J'ai changé POST into GET et j'ai enlevé le enctype=text/plain et voilà!

J'ai trouvé une autre site avec le problème

https://bugs.php.net/bug.php?id=26004

et le changement de post/get a fonctionné

Merci et bonne soirée
0