Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PDO
PDO Forum d'entraide sur PDO (PHP Data Objects) : pilote générique de bases de données avec PHP. Avant de poster -> FAQ PDO et Cours PDO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/02/2008, 11h57   #1
Invité régulier
 
Inscription : avril 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 23
Points : 7
Points : 7
Par défaut Insertion de données avec PDO

Code :
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html; charset=ISO-8859-1" http-equiv="content-type">
 
  <title>Inscription</title>
</head>
<body>
 
<?php
if(isset($_POST['inscription_presta']))
{
extract($_POST);
 
try
{
$dbh=new PDO('mysql:host=localhost;dbname=alamaison','root','');
 
}
catch(PDOException $e)
{
print "erreur : ".$e->getMessage()."<br>";
die();
}
 
$sql_presta='INSERT INTO prestataire(nom,prenom,mail,mdp,commune,menage,menage_com,soutien_scolaire,soutien_scolaire_com,jardinage,jardinage_com,garde_enfant,garde_enfant_com,covoiturage,covoiturage_com,aide_vieux,aide_vieux_com,aide_info,aide_info_com,bricolage,bricolage_com,livraison,livraison_com,coiffure,coiffure_com,description) VALUES (:nom,:prenom,:mail,:mdp,:commune,:menage,:menage_com,:soutien_scolaire,:soutien_scolaire_com,:jardinage,:jardinage_com,:garde_enfant,:garde_enfant_com,:covoiturage,:covoiturage_com,:aide_vieux,:aide_vieux_com,:aide_info,:aide_info_com,:bricolage,:bricolage_com,:livraison,:livraison_com,:coiffure,:coiffure_com,:description)';
$insert_presta=$dbh->prepare($sql_presta);
$insert_presta->BindValue(':nom',$nom);
$insert_presta->BindValue(':prenom',$prenom);
$insert_presta->BindValue(':mail',$mail);
$insert_presta->BindValue(':mdp',$mdp);
$insert_presta->BindValue(':commune',$commune);
$insert_presta->BindValue(':menage',$menage);
$insert_presta->BindValue(':menage_com',$menage_com);
$insert_presta->BindValue(':soutien_scolaire',$soutien_scolaire);
$insert_presta->BindValue(':soutien_scolaire_com',$soutien_scolaire_com);
$insert_presta->BindValue(':jardinage',$jardinage);
$insert_presta->BindValue(':jardinage_com',$jardinage_com);
$insert_presta->BindValue(':garde_enfant',$garde_enfant);
$insert_presta->BindValue(':garde_enfant_com',$garde_enfant_com);
$insert_presta->BindValue(':covoiturage',$covoiturage);
$insert_presta->BindValue(':covoiturage_com',$covoiturage_com);
$insert_presta->BindValue(':aide_vieux',$aide_vieux);
$insert_presta->BindValue(':aide_vieux_com',$aide_vieux_com);
$insert_presta->BindValue(':aide_info',$aide_info);
$insert_presta->BindValue(':aide_info_com',$aide_info_com);
$insert_presta->BindValue(':bricolage',$bricolage);
$insert_presta->BindValue(':bricolage_com',$bricolage_com);
$insert_presta->BindValue(':livraison',$livraison);
$insert_presta->BindValue(':livraison_com',$livraison_com);
$insert_presta->BindValue(':coiffure',$coiffure);
$insert_presta->BindValue(':coiffure_com',$coiffure_com);
$insert_presta->BindValue(':description',$description);
$insert_presta->execute();
if(!$insert_presta->execute())
{
echo "l'insertion n'a pas fonctionné";
}
}
else
{
?>
<div id="inscrip_presta">
<form name="inscri_presta_form" method="post" enctype="multipart/form-data" action="inscription.php">
<fieldset>
<legend>Informations utilisateurs</legend>
<label>Nom: <input type="text" name="nom"/></label> <label><br><br>Prenom: <input type="text" name="prenom"/></label><br><br>
   <label>Adresse e-mail: <input type="text" name="mail"/></label> <br><br><label>Mots de passe: <input type="password" name="mdp" /></label><br><br>
<label>Commune: <input type="text" name="commune"/></label><br><br>
Description:<br><textarea name="description" rows="5" cols="25"></textarea><br>
</fieldset>
<fieldset>
<legend>Vos domaines de compétence</legend>
<input type="checkbox" name="menage" value="oui">Menage<br>
<textarea name="menage_com" rows="5" cols="25"></textarea><br>
<input type="checkbox" name="soutien_scolaire" value="oui">Soutien scolaire<br>
<textarea name="soutien_scolaire_com" rows="5" cols="25"></textarea><br>
<input type="checkbox" name="jardinage" value="oui">Jardinage<br>
<textarea name="jardinage_com" rows="5" cols="25"></textarea><br>
<input type="checkbox" name="garde_enfant" value="oui">Garde d'enfants<br>
<textarea name="garde_enfant_com" rows="5" cols="25"></textarea><br>
<input type="checkbox" name="covoiturage" value="oui">Covoiturage<br>
<textarea name="covoiturage_com" rows="5" cols="25"></textarea><br>
<input type="checkbox" name="aide_vieux" value="oui">Aides aux personnes agées<br>
<textarea name="aide_vieux_com" rows="5" cols="25"></textarea><br>
<input type="checkbox" name="aide_info" value="oui">Aide informatique<br>
<textarea name="aide_info_com" rows="5" cols="25"></textarea><br>
<input type="checkbox" name="bricolage" value="oui">Bricolage<br>
<textarea name="bricolage_com" rows="5" cols="25"></textarea><br>
<input type="checkbox" name="livraison" value="oui">Livraison<br>
<textarea name="livraison_com" rows="5" cols="25"></textarea><br>
<input type="checkbox" name="coiffure" value="oui">Coiffure<br>
<textarea name="coiffure_com" rows="5" cols="25"></textarea><br>
</fieldset>
<input type="submit" name="inscription_presta" value="S'inscrire"/>
</form>
</div>
<?php
}
?>
</body>
</html>
Voilà j'ai un petit problême avec ce bout de code,j'en deviens fou,je ne comprends pas pourquoi mon insertion ne fonctionne pas
expliquations=>
j'ai mon formulaire,quand je valide,le formulaire renvoi sur la même page,avec un isset,je vérifie que mon bouton a été cliqué,je ne vérifie pas chaque champs ici,j'ai voulu vous alléger le code
donc je prépare ma requête avec pdo,je déclare chaque paramêtre avec mes post que j'ai préalablement extraits,j'essai d'insérer...
et rien ça ne fonstionne pas
je pense que c'est une erreur bête ,un problême de nommage ou quelque chose comme çà,si vous avez l'oeil,je veux bien de votre aide
pakkun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 13h33   #2
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Pourquoi fais tu un post sur une div ? "inscription_presta" c'est pas plutôt inscri_presta_form.
Mais avez vous des messages d'erreur ou une capture dans le bloc catch ?
Précisez
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 14h13   #3
Membre Expert
 
Inscription : janvier 2007
Messages : 1 452
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2007
Messages : 1 452
Points : 1 914
Points : 1 914
Salut,
Code :
1
2
3
4
5
 
..
$insert_presta->execute();
if(!$insert_presta->execute())
..
Tu n'as pas du rééllement lire ton code, ou alors je suis pas vraiment myope et astigmate et je ne porte pas vraiment non plus de lunettes.

bye
kaymak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 18h55   #4
Invité régulier
 
Inscription : avril 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 23
Points : 7
Points : 7
Citation:
Envoyé par gtraxx Voir le message
Pourquoi fais tu un post sur une div ? "inscription_presta" c'est pas plutôt inscri_presta_form.
Mais avez vous des messages d'erreur ou une capture dans le bloc catch ?
Précisez
le div c'étais juste pour la structuration,il n'est pas vraiment important,mes variables post passent bien
en l'occurence le "inscription_presta",c'est le bouton valider,c'est sur lui que je fais le isset
et non je n'ai pas de message d'erreur
j'ai regardé le code erreur et c'était 0000


ENSUITE


Citation:
Par défaut
Salut,
Code :


..
$insert_presta->execute();
if(!$insert_presta->execute())
..


Tu n'as pas du rééllement lire ton code, ou alors je suis pas vraiment myope et astigmate et je ne porte pas vraiment non plus de lunettes.

bye

peux tu t'expliquer?quel est le problême avec ce que j'ai écris?
$insert_presta->execute();=>c'est pour effectuer mon insertion
et
if(!$insert_presta->execute())=>c'est pour vérifier qu'elle a fonctionné
pakkun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 19h07   #5
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Vous devriez déjà ajouter des value="" dans vos champs, car je me demande ce que retourne le formulaire avec un echo sur ceux-ci afin de voir si ce qu'il contient n'est pas null.
Je sais que cela peut paraître stupide mais j'ai eu le cas avec une class et le fait d'avoir oublier le value="" dans mon forms ma bloqué
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/02/2008, 23h10   #6
Invité régulier
 
Inscription : avril 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 23
Points : 7
Points : 7
Citation:
Envoyé par gtraxx Voir le message
Vous devriez déjà ajouter des value="" dans vos champs, car je me demande ce que retourne le formulaire avec un echo sur ceux-ci afin de voir si ce qu'il contient n'est pas null.
Je sais que cela peut paraître stupide mais j'ai eu le cas avec une class et le fait d'avoir oublier le value="" dans mon forms ma bloqué
effectivement lol,c'est un reflexe à avoir
le problême de mon script,c'est que je vois pas ou est le problême,conaissez vous des outils de dobuggage efficace,qui indiqueraient un oubli de parenthèse ou un mauvais nommage de variable?
parce que ma requête est apparemment bien préparé
pakkun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/02/2008, 00h23   #7
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Personnellement je travail avec zendstudio qui franchement est très puissant pour le débuggage.
Mais bon c'est un produit shareware, sinon il reste éclipse couplé de quelques plugins (c'est opensource).
Pour le code essayer comme ceci :
Code :
bindValue(':couleur', $couleur, PDO::PARAM_STR);
car je vois que vous l'avez nommé BindValue et pensez à utiliser les constantes prédéfinie afin de lui donné le type de valeur.
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2008, 18h47   #8
Invité régulier
 
Inscription : avril 2007
Messages : 23
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 23
Points : 7
Points : 7
Citation:
Envoyé par gtraxx Voir le message
Vous devriez déjà ajouter des value="" dans vos champs, car je me demande ce que retourne le formulaire avec un echo sur ceux-ci afin de voir si ce qu'il contient n'est pas null.
Je sais que cela peut paraître stupide mais j'ai eu le cas avec une class et le fait d'avoir oublier le value="" dans mon forms ma bloqué
merci gtraxx,en fait le problême était proche
en fait je pensais que les checkbox renvoyaient une valeur si elles étaient cochées et rien si elles ne l'étaient pas
c'est le cas mais j'avais oublié qu'elles ne créeaint même pas de variable dans le tableau $_POST
donc j'avais des varaibles qui n'existaient pas si certaines cases n'étaient pas cochées d'ou le plantage de mon insertion
j'ai donc fait en sorte qu'une variable ayant pour valeur "oui" quand une case est coché et que la même variable ait la valeur "non" quand la case n'est pas coché
problême résolue et merci encore
pakkun est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/02/2008, 01h33   #9
Membre éprouvé
 
Avatar de gtraxx
 
Homme Aurélien Gérits
Développeur Web
Inscription : mai 2006
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme Aurélien Gérits
Âge : 30
Localisation : Belgique

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : mai 2006
Messages : 1 045
Points : 498
Points : 498
Mais de rien
__________________
Au petit déjeuner, je prend du PHP et au souper du jQuery.
AFUP 2009 : Bien optimiser son code pour le référencement
Mon projet open source de librairie PHP 5: magix cjquery
gtraxx est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h34.


 
 
 
 
Partenaires

Hébergement Web