PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#26 17-06-2011 10:13:46

Pierrot
Ancien nouveau
Inscription : 08-05-2009
Messages : 1 195

Re : récupérer l'id du dernier inscrit

montre ta ligne d'insertion, ta requete sql stp
a++

Hors ligne

#27 17-06-2011 11:04:24

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

non, le problème persiste et je ne peut rien enregistrer si il manque une entrée

Hors ligne

#28 17-06-2011 11:05:27

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

       
          $dn2 = mysql_num_rows(mysql_query('select id from users2'));
          $id = $dn2+1;
         
          if(mysql_query('insert into users2(id, username, password, email, avatar, signup_date) values ('.$id.', "'.$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")'))
          {
            //Si ca a fonctionne, on naffiche pas le formulaire
            $form = false;

Hors ligne

#29 17-06-2011 11:11:54

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : récupérer l'id du dernier inscrit

Déjà, avec un auto_increment, tu n'as pas à prciser l'id dans une requête INSERT

insert into users2(username, password, email, avatar, signup_date) values ('$username.'", "'.$password.'", "'.$email.'", "'.$avatar.'", "'.time().'")')

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#30 17-06-2011 11:16:34

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

j'ai fait ce test mais le résultat est le même
si je comprend bien php compte le nombre d’entrée pour créer l'id, c'est ça ?

si j'ai bien compris alors ne serait il pas plus judicieux de trouver l'id de la dernière entrée et de lui ajouter 1 ?

Dernière modification par steeve (17-06-2011 11:21:09)

Hors ligne

#31 17-06-2011 11:21:43

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : récupérer l'id du dernier inscrit

PHP n'a rien à voir là-dedans, c'est MySQL qui gère l'auto-incrémentation.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#32 17-06-2011 11:23:15

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

pardon, je voulais dire sql

Hors ligne

#33 17-06-2011 11:25:59

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : récupérer l'id du dernier inscrit

steeve a écrit :

si j'ai bien compris alors ne serait il pas plus judicieux de trouver l'id de la dernière entrée et de lui ajouter 1 ?

Bien sûr que non.
N'oublies pas que, par défaut, les appels à tes scripts sont concurrents.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#34 17-06-2011 11:28:07

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : récupérer l'id du dernier inscrit


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#35 17-06-2011 11:38:31

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

merci, après lecture, j'ai l'impression d’être comme il faut...

Hors ligne

#36 17-06-2011 11:49:01

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : récupérer l'id du dernier inscrit

Pour soumettre ta requête tu devrais faire comme ceci

$sql=sprintf("INSERT INTO users2 (username, password, email, avatar, signup_date)
                          values ('%s','%s','%s','%s','%s')"
,
                          $password,
                          $email,
                          $avatar,
                          time()
                          );
if(mysql_query($sql)){
    //Si ca a fonctionne, on naffiche pas le formulaire
    $form = false;
    }
else{
    // suite du script

Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#37 17-06-2011 11:49:21

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

pour savoir,
ce que je veux faire, c'est bien ca: http://www.phpdebutant.org/article67.php

si c'est bien le cas, dans le tuto, il ni a pas:

          $dn2 = mysql_num_rows(mysql_query('select id from users2'));
          $id = $dn2+1;

et aussi j'ai vu que dans l'insert il y a l'id.
je ne parle pas du code mais de l'utilisation, y a t'il une différence entre nos deux script ?

Dernière modification par steeve (17-06-2011 11:51:22)

Hors ligne

#38 17-06-2011 11:51:49

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : récupérer l'id du dernier inscrit

Ce vieux tuto est obsolète et cacaboudin.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#39 17-06-2011 11:52:50

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

ah !

Hors ligne

#40 17-06-2011 11:59:23

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

la c'est un peut compliqué pour moi a intégré pour moi comme ça, as tu un tuto qui ne serait pas cacaboudin pour que je recommence tout ?

Hors ligne

#41 17-06-2011 12:01:35

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : récupérer l'id du dernier inscrit

Bonjour,

En ce qui concerne l'auto incrément c'est normal. En effet à chaque insertion la valeur de l'auto incrément augmente de 1. Par conséquent si tu as 6 enregistrements de 1 à 6 et que tu supprimes le 4 par exemple, un comportement normal fait que le prochain aura un id=7. MK a raison pour utiliser l'auto increment il ne faut pas déclarer l'id dans la requête insert ou alors il faut lui assigner la valeur null.
Par contre, si tu souhaites que chaque id soit utilisée, il te faut créer ta propre fonction qui te donne l'index à insérer et à ce moment là tu déclares la valeur dans ta requête INSERT. Si tu choisis cette option, rien ne t'empêche de rester en auto_increment, comme ça tu peux l'utiliser quand cela t'arrange.

Cordialement.

Dernière modification par Jc (17-06-2011 12:02:05)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#42 17-06-2011 12:07:24

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

ok, je vais tout recommencer mais avez vous un bon tuto a ce sujuet car je ne suis pas encore capable d'intégré le code qui m'est proposer sad

Hors ligne

#43 17-06-2011 12:09:59

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : récupérer l'id du dernier inscrit

Prends le dernier exemple de MK, ca fonctionnera toujours. Ca te laissera le temps de te familiariser avec, ensuite rien ne t'empêche de faire ta fonction plus tard pour réutiliser les indexs supprimés.

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#44 17-06-2011 12:22:15

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : récupérer l'id du dernier inscrit

Réutiliser des PRIMARY KEYS supprimées est dangereux dans l'absolu.
Si ces clés étaient ou deviennent des clés étrangères dans d'autres tables de la base de données ça va très vite vérifier la TBA (Théorie du Bordel Ambiant) de Moreno


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#45 17-06-2011 12:24:38

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

non, je ne veux pas que les réutiliser, mais a force de bricolage j'en suis arrivé la, peut etre encore une fois des vieux tuto...

Dernière modification par steeve (17-06-2011 12:37:45)

Hors ligne

#46 17-06-2011 12:51:08

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

au final, j'ai reussi: enfin je pense:

        //On verifie sil ny a pas deja un utilisateur inscrit avec le pseudo choisis
        $dn = mysql_num_rows(mysql_query('select id from users where username="'.$username.'"'));
        if($dn==0)
        {
                    $sql=sprintf("INSERT INTO users (username, password, email, avatar, signup_date)
                    values ('%s','%s','%s','%s','%s')",
                    $username,
          $password,
                    $email,
                    $avatar,
                    time()
                    );
                    if(mysql_query($sql)){
                           //Si ca a fonctionne, on naffiche pas le formulaire
                            $form = false;
?>

et maintenant, si j'ai: 1,2,3,4,5,6 et que je supprime 4 par exemple puis je fais un nouveau enregistrement (le 7) j'obtient: 1,2,3,7,5,6.
est ce que c'est un comportement normal ?

Dernière modification par steeve (17-06-2011 13:08:44)

Hors ligne

#47 17-06-2011 13:35:20

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : récupérer l'id du dernier inscrit

Voui


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#48 17-06-2011 13:47:02

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

super, impeccable je vous remercie grandement, en plus j'ai compris d'autre chose.

sur ces mots, je vous quittes et je retourne modifier touts les formulaires, merci a vous et bonne continuation
a bientôt, steeve

Hors ligne

#49 17-06-2011 13:47:08

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : récupérer l'id du dernier inscrit

Bon, je développe.
En fait, les lignes d'une table doivent être considérées comme des billes dans un sac. Physiquement le SGBD les range comme bon lui semble.
Ici si tu laisse naturellement jouer l'auto-increment tu pourras retrouver la chronologie d'insertion avec un ORDER BY id, sinon, il n'y a aucun moyen de retrouver l'ordre d'insertion (sauf à avoir créé une colonne en TIMESTAMP qui s'initialise automatiquement avec le timestamp courant), ce qui, dans la plupart des cas est sans importance.


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#50 17-06-2011 16:32:57

steeve
Membre
Inscription : 16-06-2011
Messages : 103

Re : récupérer l'id du dernier inscrit

ah, j'aime les explications avec des images, c'est plus compréhensible pour le petit développeur que je suis.
quoi qu'il en soit, tout fonctionne très bien, encore merci a vous !!!

Dernière modification par steeve (17-06-2011 16:34:06)

Hors ligne

Pied de page des forums