Récupérer données lors d'un INSERT

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer données lors d'un INSERT

par Toufinet » 13 juil. 2006, 17:21

oui ok, ce sera la meilleure solution je pense.

Merci beaucoup de votre aide ;)

par Henri » 13 juil. 2006, 10:16

Pour ton problème de doublon : tu mets un index unique sur la colonne logon. Si tu tentes d'insérer un doublon, tu auras une erreur :
Tu inclues donc ton INSERT dans une boucle

Code : Tout sélectionner

REPETER générer un login aléatoirement INSERT ... lire erreur MySQL TANT QU'il y a une erreur

par Toufinet » 12 juil. 2006, 18:43



Bah oui, mais il ne faut pas qu'il existe 2 mêmes login ..
Donc soit dans un boucle je génère un login aléatoirement avec PHP, jusqu'à temps d'en trouver un qui n'existe pas déjà ( je trouve cette méthode vraiment très lourde )
Soit mysql est mon ami :) ... mais ça n'a pas l'air d'être le cas :(


Merci, désolé, je ne savais pas vraiment quoi chercher.

par ouckileou » 11 juil. 2006, 13:31

Pour le 1, tu peux bien créer des logins mais garder un identifiant numérique autoincrémenté non ?

Pour le 2 :

Code : Tout sélectionner

SELECT LAST_INSERT_ID()
ou mysql_insert_id()

Cette réponse a déjà été donnée environ 200 fois sur le forum, cherche la prochaine fois :)

par Toufinet » 11 juil. 2006, 12:36

Bon ok, on va abandonner le 1.
En fait le but est de créer des login. Les mettre aléatoirement aurait rajouté une chouquette de sécurité, m'enfin, pas grave.

Pour le 2° , puisque c'est possible, comment faire ?

Re: Récupérer données lors d'un INSERT

par ouckileou » 11 juil. 2006, 11:40

1 - Pourquoi faire ?

2 - Oui, avec une colonne auto increment...
Avec un identifiant généré aléatoirement je ne vois pas quel moyen tu pourrais avoir de savoir que c'est la dernière ligne enregistrée, sauf avec une date...

Récupérer données lors d'un INSERT

par Toufinet » 11 juil. 2006, 09:53

Bonjour,

Voilà, je voulais savoir 2 choses :
1° Es-ce qu'il est possible, au même titre qu'on peut paramètrer un champ en auto-incrémentation, de paramètrer en champ en random ?
Exemple :
Je crée un champ d'entiers de longueur 4 : id
J'insert des données dans la table.
Es-ce que MySQL peut "randomiser" le champ id, en faisant attention à ce qu'il n'y ai pas de doublon ?
Il est possible de le faire en PHP, mais ça me semble un peu lourd, donc si MySQL peut s'en charger, ce serait génial !

2° Es-t'il possible de directement récupérer la valeur d'un champ après un insert ?
Exemple :
J'ai un champ id, en autoincrémentation ( ou en random, si ma question 1° a une solution :D ) ).
J'exécute une requette genre : "INSERT INTO table VALUES ( '' )"
Comment récupérer la valeur de id qui a été attribuée directement ?
Idem que pour la question 1°, c'est faisable en PHP, mais ce n'est pas suffisament fiable pour mon application.

Voilà, merci d'avance à qui saura m'aider :)