[MySql] récupération d'un champs "id" auto-incréme

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

15 juin 2007, 09:40

Au cas où toi, tu n'es pas compris, sur PHPFrance, on préfère expliquer les bonnes manières de coder plutôt que de donner directement une réponse qui ne sera pas comprise.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

15 juin 2007, 11:57

Je pensais pourtant avoir été clair...mais apparement non.
Qu'est-ce que tu veux dire par là ?

De toute façon la remarque ne s'applique pas à toi, mais à l'auteur du post.

Je suis désolé, mais c'est une perte de temps que de chercher à l'aveuglette quel pourrait être le problème, alors qu'un message d'erreur nous le dirait (ou son absence nous orienterait vers autre chose).

Et comme le dit zeus, c'est bien d'apprendre les trucs pour débugger soit-même, c'est un gain de temps pour tous. x@v ne va pas revenir poster dès qu'un truc ne marche pas, s'il ne sait pas débugger lui-même les petites erreurs de syntaxe, il s'en sortira pas.

Et enfin, quand on vient sur un forum, la moindre des choses est quand même de suivre les conseils donnés. Si on poste, c'est qu'on a un moment d'impuissance, et qu'on s'en remet à quelqu'un d'autre, donc on l'écoute. Et c'est pas du mépris, ça arrive à tout le monde, moi le premier.

Mammouth du PHP | 568 Messages

15 juin 2007, 12:08

Je pensais pourtant avoir été clair...mais apparement non.
Qu'est-ce que tu veux dire par là ?
Et bien je pensais que les remarques que je lui ai fait lui servirai, mais ça n'a pas été le cas :?

x@v
Mammouth du PHP | 570 Messages

15 juin 2007, 14:51

je reconnais qu'il faut pour débugger déployer une méthode que je n'est pas pour mysql. Mais je m'y attache.
$time=time();
    $query = "insert into article values
            ('',  'ecrivain', 'page', 'description', 'titre', 'article_text', 'image', 20, 10, 10)";
	$result=mysql_query($query, $lien) or die (mysql_error());
        $id_article = mysql_insert_id();
        echo $dernier_id;


  $date = date('Y-m-d').' '.$time;
  $requette_pages = "insert into pages 
                (page, date, id_article)
              values 
                ('zzzzz', '$date', $id_article)";
   mysql_query($requette_pages, $lien) or die (mysql_error());
le problème de ces deux requettes qui fonctionnent, elles insèrent bien les données mais pas comme il faut. La première requette fonctionne en insèrant :
id == 185
ecrivain ==ecrivain
page ==page
description ==description
titre ==titre
article_text ==article_text
image ==image
creer ==20
modifier ==10
publier ==10
la deuxième insère

Code : Tout sélectionner

page ==zzzzz description rubrique date == 2007-06-15 1181911335 id_article == 127
Donc comme ont peux le voir tout se que je demande s'insère à l'exceprion de l'id_article, qui me rentre invaraiblement à chaque insertion le nom 127 au lieu et en plca le dernier id

ViPHP
ViPHP | 2144 Messages

15 juin 2007, 14:55

Je parierai que le type de ce champ est un smallint, qui est limité à 127 par son encodage.
Toute insertion d'un nombre plus grand que 127, fera que ce champ contiendra le plus grand nombre qu'il pourra contenir: 127
Change le type de champ, par un type qui admet des nombres plus grand un int, par exemple.

Mammouth du PHP | 568 Messages

15 juin 2007, 15:13

Je parierai que le type de ce champ est un smallint, qui est limité à 127 par son encodage.
Toute insertion d'un nombre plus grand que 127, fera que ce champ contiendra le plus grand nombre qu'il pourra contenir: 127
Change le type de champ, par un type qui admet des nombres plus grand un int, par exemple.
:pouce:

x@v
Mammouth du PHP | 570 Messages

15 juin 2007, 15:15

tu paierais ?
id int(11)
tu me dois un verre :D
en faite j'ai dus refaire mes tables avec un auto-increment à 0, et miracle tout fonctionne, LOL.
Je tiens à vous remerciez de m'avoir accompagné sur ce problème, y a pas à dire sa fait toujours du bien de trouver une solution.