PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 25-02-2010 18:22:46

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

probléme d enregistrement dans ma bdd

bonjour à tous,

voila mon soucis j'ai créer un formulaire sur plusieurs pages une 1 page avec l'email et la seconde avec nom,prénom ,date,ville

mais les enregistrement ne se font pas dans ma base voile mon code pour ma page mail:

(
// On commence par récupérer les champs


if(isset($_POST['mail']))      $email=$_POST['mail'];
else      $mail="";

// On vérifie si les champs sont vides
if(empty($mail))
    {
    echo '<font color="red">Attention,le champs ne peut rester vide !</font>';
    }

// Aucun champ n'est vide, on peut enregistrer dans la table
else    
    {
   
    // connexion à la base
$db = mysql_connect('localhost', 'root')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('kam',$db)  or die('Erreur de selection '.mysql_error());
     
    // on écrit la requête sql
  $query  = "INSERT INTO clients(id, ,mail) VALUES('','$mail')";
   
    // on insère les informations du formulaire dans la table
    mysql_query($query)
  or die ("Exécution de la requête impossible.");

    // on affiche le résultat pour le visiteur
    echo 'Vos infos on été ajoutées.';

    mysql_close();  // on ferme la connexion
    }
 
)

ma table resemble a sa:

(
 CREATE TABLE IF NOT EXISTS `clients` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prenom` VARCHAR(50) NOT NULL,
  `nom` VARCHAR(50) NOT NULL,
  `ct` DATE NOT NULL,
  `ville` VARCHAR(90) NOT NULL,
  `mail` VARCHAR(80) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;)

voila si vous pouviez m expliquer ou se trouve mon erreur

grand merci

Dernière modification par tycoons (25-02-2010 18:24:30)

Hors ligne

#2 25-02-2010 19:07:10

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : probléme d enregistrement dans ma bdd

Cette ligne là :

$query  = "INSERT INTO clients(id, ,mail) VALUES('','$mail')";

Voici un correctif (de plus pas besoin de mettre les champs en auto-incrément :

$query  = "INSERT INTO clients(mail) VALUES('$mail')";

L'erreur venait d'une double virgule. Penses à utiliser la fonction mysql_error() elle t'aurait permis de rapidement cibler le problème.

Hors ligne

#3 25-02-2010 19:14:30

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : probléme d enregistrement dans ma bdd

nom prenom ct ville NOT NULL wink

tu devrais avoir un message d'erreur wink

a++

Hors ligne

#4 25-02-2010 19:14:30

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

salut ,

ho purée j avais tellement le nez dedans que je ne l'avais meme pas vu merci pour l'info
je débute  mais il me reste une question concernant ta réponse pourquoi ne pas mettre tous les champs en auto incrénement?

je n avais aucune erreur d afficher sur ma page

Dernière modification par tycoons (25-02-2010 19:15:20)

Hors ligne

#5 25-02-2010 19:23:51

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

bon je pense qui doit y avoir encore un truck car sa marche toujours pas  pourtant pas d erreur ma page s affiche bien  mais sa n enregistre rien dans ma table

Hors ligne

#6 25-02-2010 19:27:57

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : probléme d enregistrement dans ma bdd

explique moi comment mettre le nom en autoincrément ?:|
a++

Dernière modification par Pierrot (25-02-2010 19:28:41)

Hors ligne

#7 25-02-2010 19:39:09

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

salut pierrot,

le nom et le reste ne sont pas en autocrénement il n'y a que le champ id qui l est  les autre sont not null mais tu peux me dire ou tu vois l'erreur dans la création de ma table

Hors ligne

#8 25-02-2010 19:58:20

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : probléme d enregistrement dans ma bdd

Oh oui tiens j'avais pas fait gaffe...
Le fait de tous les mettre en not null t'obliges à les renseigner lors du insert. Tu ne peux en oublier.
Je pense que c'est ce que sous-entendait Pierrot.

Hors ligne

#9 25-02-2010 20:04:36

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : probléme d enregistrement dans ma bdd

je ne sous-entendais pas roll
j'affirmais big_smile:D
a++

Hors ligne

#10 25-02-2010 20:12:00

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

ok donc il faut que je modifie le not null  mais par quoi autocrénement? un peu d explication  svp le démarrage est un peu dur j ai compris que autocrénement  ajoute automatiquement un id a mes champs pour le reste je comprend pas encore

Dernière modification par tycoons (25-02-2010 20:12:26)

Hors ligne

#11 25-02-2010 20:43:09

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : probléme d enregistrement dans ma bdd

Le NOT NULL indique que le champs ne peut être vide (NULL). C'est une option FACULTATIVE !

Hors ligne

#12 25-02-2010 21:33:55

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

ok merci pour l info  c'est bien se que je veux je veux pas que le champs sois null je veux qu un message d erreur s affiche au cas ou se n est pas remplis est sa ne gene pas l enregistrement dans ma base si?

Hors ligne

#13 25-02-2010 21:37:14

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : probléme d enregistrement dans ma bdd

Dans ce cas il te faut vérifier la variable qui arrive de ton formulaire, rien de plus simple.
Par contre je ne te comprends pas, en cas de mauvaises informations tu veux tout de même créer l'enregistrement ? C'est contradictoire.

Hors ligne

#14 26-02-2010 09:07:40

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

bonjour,

bon j ai du louper un truck j ai changer les infos dans ma table le not null par null mais sa n enregistre toujours rien je m été mal exprimer xTG les variable de vérification des champs se font bien dans le formulaire je n arrive pas a voir se que je fais mal pour l enregistrement j essais de faire mon formulaire grace au tuto trouver sur phpdebutant je ne demande qu'à apprendre

Hors ligne

#15 26-02-2010 09:11:11

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : probléme d enregistrement dans ma bdd

Met le code de ton formulaire, je regarde wink
a++

Hors ligne

#16 26-02-2010 09:17:08

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

merci beaucoup Pierrot,

(<form method="post" action="info.php">
Votre email : <input type="text" name="mail" value="" size="20">
<input type="submit" value="Suivant">
<?php
// On commence par récupérer les champs

if(isset($_POST['mail']))      $mail=$_POST['mail'];
else      $mail="";

// On vérifie si les champs sont vides
if(empty($mail))
    {
    echo '<font color="red">Attention,le champs ne peut rester vide !</font>';
    }

// Aucun champ n'est vide, on peut enregistrer dans la table
else    
    {
   
    // connexion à la base
$db = mysql_connect('localhost', 'root')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  

    mysql_select_db('kam',$db)  or die('Erreur de selection '.mysql_error());
     
    // on écrit la requête sql
  $query  = "INSERT INTO clients(mail) VALUES('$mail')";
   
    // on insère les informations du formulaire dans la table
    mysql_query($query)
  or die ('Exécution de la requête impossible.'.mysql_error());
   
    // on affiche le résultat pour le visiteur
    echo 'Vos infos on été ajoutées.';

    mysql_close();  // on ferme la connexion
    }
?>

</form>
)

ma table modifier

(CREATE TABLE IF NOT EXISTS `clients` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `prenom` VARCHAR(50) DEFAULT NULL,
  `nom` VARCHAR(50) DEFAULT NULL,
  `ct` DATE DEFAULT NULL,
  `ville` VARCHAR(90) DEFAULT NULL,
  `mail` VARCHAR(80) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;)

ma page index php  envoi ver ma page info php ou se trouve le reste du formulaire a remplir  merci de prendre un peu de temps pour m'expliquer

Dernière modification par tycoons (26-02-2010 10:24:35)

Hors ligne

#17 26-02-2010 10:17:31

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : probléme d enregistrement dans ma bdd

Peut-on savoir quelle est la volonté de n'enregistrer que l'email ?

PS :

$query  = "INSERT INTO clients(mail) VALUES('$mail')".mysql_error();

Il s'est glissé par mégarde le mysql_error() ? Il n'a rien à faire à l'intérieur de la requête. ^^

Dernière modification par xTG (26-02-2010 10:17:50)

Hors ligne

#18 26-02-2010 10:23:54

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

salut xTG  ,
je te fais un petit topo de se que je veux arriver a faire sur la page index je veux enregsitrer l email de mon visiteur et ensuite sur la page info le reste du formulaire non,prenom,ville,date.
je ne veux pas enregistrer que l email met toute les infos de mes 2 formulaires:
page index le mail
page info le reste
c'est comme si je décomposer mon formulaire en 2 partie
j'ai modifier le mysql error

Hors ligne

#19 26-02-2010 11:03:44

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : probléme d enregistrement dans ma bdd

Saluton,
Bon on va arrêter de perdre son temps.
La colonne email de la table clients ne peut être renseignée qu'une fois le client créé dans la table, donc son identifiant connu.
Toute autre démarche constituerait une aberration.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#20 26-02-2010 11:07:41

dionysos
Membre
Lieu : Montpellier
Inscription : 18-02-2010
Messages : 24

Re : probléme d enregistrement dans ma bdd

Est-ce que le message « Vos infos ont été ajoutées » s'affiche ?

Hors ligne

#21 26-02-2010 11:07:51

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : probléme d enregistrement dans ma bdd

Comme l'a dit Kris, c'est absurde ta démarche.
Passes les informations d'un formulaire à un autre et n'enregistres que lorsque tout a été renseigné et vérifié.

Tu peux utiliser les input de type hidden ou bien des variables de session pour faire transiter tes informations d'une page à une autre.

Hors ligne

#22 26-02-2010 11:18:58

dionysos
Membre
Lieu : Montpellier
Inscription : 18-02-2010
Messages : 24

Re : probléme d enregistrement dans ma bdd

@Maljuna Kris & xTG

Pourquoi vous ne répondez pas au problème posé ?
Bien sûr que ce qu'il fait est une aberration !
Mais il s'en rendra bien compte assez tôt.

Pourquoi vouloir lui faire insérer tous les champs puisqu'il n'arrive pas à en insérer un ?
Il bloque sur le fait que sa base de données n'est pas mise à jour.
Lorsqu'il sera arrivé à insérer un enregistrement, même avec un seul champ, il sera content, il pourra avancer et là, il se rendra bien compte qu'il aurait mieux valu insérer tous les champs en même temps que de mettre à jour un enregistrement.

Hors ligne

#23 26-02-2010 11:46:20

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

salut dionysos,

toute à fait d'accord avec toi la méthode pour enregistrer dans ma base insert into apres je met les variable que je veux enregistrer . Aprés je m'y prend trés mal c'est sur puisque sa ne  marche pas .Dans ma page index ma fonction post mail avec le inser into du champ mail devrai s'enregistrer normalement non?

Hors ligne

#24 26-02-2010 12:18:46

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : probléme d enregistrement dans ma bdd

dionysos a écrit :

@Maljuna Kris & xTG

Pourquoi vous ne répondez pas au problème posé ?
Bien sûr que ce qu'il fait est une aberration !
Mais il s'en rendra bien compte assez tôt.

Pourquoi vouloir lui faire insérer tous les champs puisqu'il n'arrive pas à en insérer un ?
Il bloque sur le fait que sa base de données n'est pas mise à jour.
Lorsqu'il sera arrivé à insérer un enregistrement, même avec un seul champ, il sera content, il pourra avancer et là, il se rendra bien compte qu'il aurait mieux valu insérer tous les champs en même temps que de mettre à jour un enregistrement.

Cette approche, prétendument heuristique, fait perdre son temps à tout le monde.
La technique d'apprentissage laxiste qui consiste à encourager à faire n'importe quoi a priori pour améliorer peu à peu, je ne sais même pas comment la qualifier.
En tout cas c'est une approche que je ne saurais cautionner.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#25 26-02-2010 12:25:13

tycoons
Membre
Inscription : 25-02-2010
Messages : 16

Re : probléme d enregistrement dans ma bdd

salut Maljuna Kris,
j ai lu les explication de l exemple j essai de les reproduires avec quelque modification justement pour comprendre le fonctionnement tout d abord et ensuite se que je n ai pas compris mais je suis ouvert a une autre approche que   conseil tu? on est bien sur php débutant ?

Hors ligne

Pied de page des forums