Mettre un id automatiquement

Eléphant du PHP | 450 Messages

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 :)
Alone in the dark , I smile :D

Mammouth du PHP | 568 Messages

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...
Heddi s'est remis à développer pour lui même !
Martina Hingis - Étoile du Tennis
Heddi v. 2007

Eléphanteau du PHP | 27 Messages

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:
Allez sur JournaWeb.info ! ! ! ;)

Eléphant du PHP | 450 Messages

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?
Alone in the dark , I smile :D

Eléphanteau du PHP | 24 Messages

28 sept. 2005, 16:30

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

Eléphant du PHP | 450 Messages

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?
Alone in the dark , I smile :D

Eléphanteau du PHP | 24 Messages

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
Modifié en dernier par krummy le 28 sept. 2005, 16:40, modifié 1 fois.

ViPHP
ViPHP | 2144 Messages

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é

Eléphant du PHP | 450 Messages

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?
Alone in the dark , I smile :D

Eléphanteau du PHP | 24 Messages

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

ViPHP
ViPHP | 2144 Messages

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é
Modifié en dernier par iclo le 28 sept. 2005, 16:56, modifié 1 fois.

Eléphant du PHP | 450 Messages

28 sept. 2005, 16:48

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

sa focntionne nikel ;)

encore merci
Alone in the dark , I smile :D