Insert into MYSQL avec PHP
Résolu
cestmoi
-
cest_moi Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
cest_moi Messages postés 7 Date d'inscription Statut Membre Dernière intervention -
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();
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:
- Insert into MYSQL avec PHP
- Touche insert - Guide
- Easy php - Télécharger - Divers Web & Internet
- Disk boot failure insert system disk and press enter - Guide
- Mysql community server - Télécharger - Bases de données
- Expert php pinterest - Télécharger - Langages
11 réponses
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.
$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.
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.
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.
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
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
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 ?
Ne faut-il pas mettre des quote/guillemets pour encadrer le nom des champs ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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 ;)
$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 ;)
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 ;)
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 ;)
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 :)
<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 :)
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..
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..
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 !
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
Je continuerai demain, ou ce soir à la maison, car il faut que je termine mon programme Oracle :(
Merci pour l'aide
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
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