Problème enregistrement formulaire

Résolu/Fermé
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 - 27 déc. 2022 à 14:57
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 - 28 déc. 2022 à 22:07

 Bonjour,

J'ai un formulaire puis un fichier PHP de traitement et enregistrement de ce formulaire dans une BDD.

Avant quand je faisais un retour vers le formulaire en étant sur la page d'affichage du traitement.php (flèche retour en haut du navigateur) je pouvais à nouveau valider le même formulaire et l'enregistrer à nouveau.

Now  j'ai:  " Integrity constraint violation: 1062 Duplicate entry '  ' for key ' ' in C  "

Par contre si je retourne à nouveau vers le formulaire (flèche navigateur) et en ajoutant seulement 1 caractère dans le "textarea" la page de traitement l'enregistre à nouveau et je n'ai plus de message d'erreur.

Pourquoi ?


Windows / Firefox 108.0

11 réponses

yg_be Messages postés 22485 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 février 2024 1 446
27 déc. 2022 à 16:11

bonjour,

cela dépend sans doute de la définition de la table.

0
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 2
27 déc. 2022 à 16:55

c'est à dire ?

0
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 2
27 déc. 2022 à 17:57

effectivement dans ma table là ou s'enregistre le "textarea" il y a une petite image d'un pinceau (!?) et quand je la survole avec la souris s'affiche "index" ...

Je ne sais ce que ça signifie.

0
yg_be Messages postés 22485 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 février 2024 1 446
27 déc. 2022 à 18:02

Nous as-tu partagé le message d'erreur exact et complet?

Qui a créé cette table?

0
jordane45 Messages postés 38040 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 février 2024 4 622
27 déc. 2022 à 18:04

Bonjour

Il semble surtout y avoir un souci avec la requête SQL et le code PHP que tu as utilisé pour y faire appel....

Si tu ne nous montres pas le code en question, impossible pour nous de te répondre !


.
Cordialement,
Jordane

0

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

Posez votre question
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 2
27 déc. 2022 à 20:58

le message d'erreur:

Fatal error: Uncaught PDOException: SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '... ' for key 'codep' in C:\xampp\htdocs\...fichier.php:140 Stack trace: #0 C:\xampp\htdocs\...fichier.php(140): PDOStatement->execute() #1 {main} thrown in C:\xampp\htdocs\...fichier.php on line 140

La clé ou ligne 'codep' est juste après la ligne enregistrant le" textarea"

Que signifie "index" dans une ligne de table ? Dans la ligne enregistrant le "textarea" il y a cet icone .C le seul endroit dans toutes mes tables où ça apparait. 

C moi qui ai créé la table.

Si j'avais un soucis avec la requête SQL et le code PHP ça ne marcherait pas du tout hors ça marche sauf quand je fais un retour sur le formulaire pour tenter de l'enregistrer à nouveau et l'erreur ci-dessus.

0
jordane45 Messages postés 38040 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 février 2024 4 622
27 déc. 2022 à 21:42

Si j'avais un soucis avec la requête SQL et le code PHP ça ne marcherait pas du tout hors ça marche sauf quand je fais un retour sur le formulaire pour tenter de l'enregistrer à nouveau et l'erreur ci-dessus.

Vu le message d'erreur... on peut supposer (vu que tu ne nous montres toujours pas ton code.... ) que :

- Dans ta table, le champ codep est la clé primaire

- surement auto-incrémenté

- que dans ton code php, tu lui passes une valeur vide au lieu de null ... et que par conséquent.. c'est là la cause de ton souci !

A moins que tu n'es défini ce champ (codep) comme index "unique" .. et donc, que la table ne permet pas les doublons. (mais là aussi, sans voir la structure de ta table .. impossible d'en être sûr ! )

Quoi qu'il en soit ...   sans nous montrer ton code ... et la définition de ta table ...   tu n'auras pas de meilleur réponse !

0
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 2
27 déc. 2022 à 22:11

 La clé primaire au 1er rang est en auto-incrément

"codep" n'est pas une clé primaire il est au 6ème rang après l'enregistrement du "textarea" (qui est au 5ème rang).

Ma question: pourquoi apparait l'icone "Index" sur le champ de la table enregistrant le "textarea" ?

La table:

1 idAss   icone "primaire" auto-increment

2 ...

3...

4...

5 letexte   icone "Index"  ( enregistrement du textarea )

6 codep

7...

8...

0
jordane45 Messages postés 38040 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 février 2024 4 622
27 déc. 2022 à 22:19

Un INDEX sert à améliorer la vitesse du moteur de la base de données pour procéder à des recherches ou des jointures sur les tables.

Le souci se trouvant, vu le message d'erreur, sur le champ codep .. c'est surtout lui qu'il faudrait regarder.

Tu as du le mettre en index "UNIQUE" ...

A noter que pour nous montrer la structure de ta table... soit tu nous fais une capture écran du phpmyadmin sur la définition de ta table .. soit tu fais un SHOW CREATE TABLE en requête SQL.

PS: l'ordre des champs dans une table n'as aucune importance.

0
jordane45 Messages postés 38040 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 février 2024 4 622 > jordane45 Messages postés 38040 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 février 2024
27 déc. 2022 à 22:20

PS² : si tu as des "index" sur des champs de ta table... vu que c'est toi qu'il l'a créé ...  c'est que tu les y a mis ( par mégarde sûrement...)

0
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 2
28 déc. 2022 à 14:01

Jordane45 je crois que tu as vu juste !

J'ai effectivement un "index unique" sur "codep". Mais je ne comprends pas pourquoi. J'ai supprimé "codep" pour le recréer et "index unique" est réapparu.

Comment le supprimer ? ou puis je trouver de la doc sur MYSQL (facile et en français de préférence) ?

Merci.

0
jordane45 Messages postés 38040 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 février 2024 4 622
28 déc. 2022 à 14:25

Il ne faut pas supprimer le champ ... mais supprimer l'index.

Pour la doc, non, je ne connais rien de particulier en français... et si tu te lances dans la programmation, je t'invite fortement à augmenter tes compétences en anglais.

Pour supprimer ton index, tu peux le faire via phpmyadmin

Remove Unique Index With PHPMYADMIN

To remove unique index of a column,

1) Open PHPMYADMIN
2) Select database >database table >Structure >(Select from option a or b below)
3) Look for Indexes Table which is below the main table.
4) Change or remove the unique index

0
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 2
28 déc. 2022 à 18:56

Merci beaucoup !

Je crois que je n'ai pas le même "phpmyadmin" puisque j'ai pas tout à fait ce que tu me dis.

Concernant l'index j'ai 4 choix : "INDEX"  "UNIQUE"  "SPATIAL" ou "FULLTEXT". J'étais sur "UNIQUE" j'ai mis sur "INDEX" et ça marche !

Merci encore, belle fin d'année. Bonne année 2023 !

0
jordane45 Messages postés 38040 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 24 février 2024 4 622
28 déc. 2022 à 18:59

Tu n'as pas retiré l'index .. tu l'as juste modifié. A voir si tu en as besoin pour effectuer des recherches dans ta base ou pour faire des jointures sur ce champ.

En soit ce n'est pas générant.. ça prend juste un peu de place dans la base de données.

Bref, pense à mettre le sujet en RESOLU.

0
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 2
28 déc. 2022 à 22:01

Ok merci encore.

0
gismin Messages postés 22 Date d'inscription samedi 6 juillet 2013 Statut Membre Dernière intervention 10 août 2023 2
28 déc. 2022 à 22:07

Sujet résolu.

0