Mettre un id automatiquement

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 : Mettre un id automatiquement

par castelli » 28 sept. 2005, 16:48

Merci les gars j'ai compris comment sa fonctionnait l'autoincrenement

sa focntionne nikel ;)

encore merci

par iclo » 28 sept. 2005, 16:41

un id est une valeur numérique, utilise donc un type int ou bigint(en fonction du nombre de donnée que pourra contenir la table)

[EDIT]Grillé par Krummy, mais petite précision, un int est limité à 127 en positif, donc un bigint est souvent plus conseillé

par krummy » 28 sept. 2005, 16:41

Ton type de champ doit être "INT" pour que ça marche...

Après je sais pas si un ID doit être le PREMIER champ de ta table ou pas, c'est peut-être ça qui pose probème aussi

par castelli » 28 sept. 2005, 16:38

Arghh les gars suis desolé de vous embetez mais j'ai une erreur quand je me met en autoincrenement

la struture de mon champ id est varchar 4 not null autoincrennement

et l'erreur qu'il me dise est :

requête SQL:

ALTER TABLE `util` CHANGE `id` `id` VARCHAR( 4 ) CHARACTER SET latin1 COLLATE latin1_general_ci NOT NULL AUTO_INCREMENT
MySQL a répondu:

#1063 - Incorrect column specifier for column 'id'


encore desolé de vous embetez.. mais vous savez pourquoi je peut avoir cet erreur ?

sa vient pitte du type du champ?

par iclo » 28 sept. 2005, 16:32

Si tu utilises la méthode préconisé par Tonio 76 il te suffit d'insérer les données dans la table, sans spécifier de valeur pour le champ id pour que la base de donnée se charge d'attribué un id qui sera unique (par les autres technique, tu risque touojours d'avoir des doublons et autres problêmes)
J'ai donc un peu de mal à comprendre ce que tu demandes concernant le champ caché

par krummy » 28 sept. 2005, 16:31

Tu n'as plus besoin de t'occuper de ton id si il est en auto_increment :wink:
host = '********';
$user = '**********';
$pass = '************';
$db = '*********';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());


$query="INSERT INTO util (pseudo,code,email) VALUES ('".$pseudo."', '".$code."', '".$email."')";
mysql_query($query) or die (mysql_error);
Essaie avec ça

par castelli » 28 sept. 2005, 16:30

J'ai essailler en passant par l'autoincrenement de phpmyadmin mais le truc c'est que je comprend pas comment je dois me debrouiller dans le formulaire pour que cela fonctionne..

Faut il que je mette une valeur basique a l'id (genre 1 ) et phpmyadmin la changera automatiquement lors de lecriture de la valeur dans la base de donnéS?

par krummy » 28 sept. 2005, 16:30

Tu n'as plus besoin de t'occuper de ton id si il est en auto_increment :wink:

par castelli » 28 sept. 2005, 16:28

Euh .. a vi.. c pas bete cette petite remarque lol

a ton avis en passant par un champ caché (avec post ) sa devrai fonctionner?

par Tonio 76 » 28 sept. 2005, 16:26

Bonjour castelli,
Tu t'embête pour pas grand chose :
Si tu as une interface phpmyadmin, il te suffit, dans le champs ID de mettre les attributs suivants :
extra = autoincrement et cocher la case index.
Grace à cette petite maneuvre, l'ID s'autoincrementera de 1 a chaque nouvelle entrée ! :wink:

par heddicmi » 28 sept. 2005, 16:24

Ce n'est pas une question de méthode, mais de logique... Tu remarqueras surement quand dans le code que tu montres, $id n'est jamais dénifis...

Mettre un id automatiquement

par castelli » 28 sept. 2005, 16:20

Bonjour tout le monde , j'ai un petit probleme.

Je m'explique . Dans on formulaire d'inscrition , lorsqun membre s'inscrit je lui attribut automatiquement un id . Pour ce faire je me base sur le id le plus important et je l'incremente.
Hors j'ais un probleme que je ne trouve pas a ce niveau la .
Je fais donc appels a vous a default d'y arriver par moi meme

voici mon code
host = '********';
$user = '**********';
$pass = '************';
$db = '*********';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

$maxid = "SELECT max(id) FROM util ";
$maxid = mysql_query($maxid,$link) or die ('Erreur : '.mysql_error() );
while($row=mysql_fetch_row($maxid))
{
    $rowid=$row[0];
}
$rowid++;


$query="INSERT INTO util (pseudo,code,email,id) VALUES ('".$pseudo."', '".$code."',  '".$email."',  '".$id."');";
mysql_query($query) or die (mysql_error);
                        
Mon probleme c'est qu'aucune id ne s'ajoute dans ma bdd

Merci de m'aider ;)

ps : si quelqun a une methode plus simple je suis preneur :)