Script PHP [RESOLU]
Forum Programmation : Script PHP [RESOLU]
Bonjour à tous,
J'ai remarqué à plusieurs reprises que mon script d'insertion d'un nouvel enregistrement ne l'insérer pas toujours au même endroit. Je m'explique une fois il peut être inséré en début de table, une autre fois en fin de table. Mon souci est que je voudrai mettre le focus sur le dernier enregistrement de ma table avant l'insertion pour être certain que celui-ci se fera en fin de table.
Existe t-il une commande spéciale pour positionner le focus sur le dernier enregistrement?
Merci
Message édité par franqui34@idn le 19-09-2009 à 12:50:09
Ce n'est pas important de savoir où l'enregistrement va s'insérer, ce qui est important c'est qu'il s'insère.
Après lorsque tu récupère tes enregistrements c'est à toi de savoir dans quel ordre tu les veux. Avec un ORDER By ton_champ_a_trier par exemple.
DESC si tu veux en sens inverse.
Maintenant si l'ordre des éléments n'est pas dépendant d'un ordre alphabétique (on va dire) tu rajoutes un champ ordre soit en auto_incrément, soit que tu incrémentes toi même à chaque insert. et tu tries en faisant un ORDER By ordre
Merci Calao pour votre réponse,
Pour moi il est important que l'enregistrement s'insère en fin de table et je vais expliquer pourquoi.
En fait je récupère dans l'enregistrement inséré, des données personnellles et j'ai automatisé un mail d'avertissement qui tombe chez le responsable pour lui dire qu'une nouvelle personne vient de s'enregistrer. Cela lui permet de connaître la personne et de lui répondre par mail.
Si l'enregistrement se fait en début de table il recevra un mail du dernier enregistrement mais qui ne correspondra pas à la personne qui vient de s'enregistrer.
Je ne sais pas si j'ai été clair mais l'automatisation du mail prend en charge le dernier enregistrement de la table.
Je vous précise que l'enregistrement se fait bien et que le mail tombe bien chez le responsable mais s'il s'insère en début de table, il est ignoré et ne correspond pas à la personne qui vient de s'enregistrer.
Cordialement
Salut tous,
Calao a raison, tu ne peux pas contrôler ou va se ranger le dernier enregistrement inséré dans ta table (selon le SGBD et la structure de ta table, ça sera à un endroit ou à un autre), mais tu peux ajouter un champ qui te permet de déterminer que c'est bien le dernier inséré : un champ auto-incrémenté comme le propose Calao ou un champ Date/Heure d'insertion.
Il y a un truc qui m'échappe dans ton système : si 2 personnes sont ajoutées presque en même temps, il y en a une qui ne sera pas traitée puisqu'on ne prend que le dernier inséré dans la table
Tu as un booléen pour savoir si l'enregistrement a été traité ?
Répondre à DrSnake
Merci Drsnake,
J'ai bien saisi le message de Calao et je vais créer un champ "Num" auto-incrémenté pour contrôler le dernier enregistrement et réaliser un ordre par le champ "Num" puis lorsque le dernier enregistrement sera ordonné, l'appui sur le bouton devrait règler mon problème.
Pour répondre à votre interrogation, la personne qui s'inscrit doit ensuite appuyer sur un bouton 'Aviser le responsable' ce qui fait que le message est systèmatiquement envoyé.
En tous les cas, merci à tous les deux. Je considère que le post est résolu.
Cordialement.
Le champ date est le meilleur compromis mais alors date au format timestamp Unix c'est à dire date('U'); en php qui renvoi le nombre de secondes depuis le 1/01/1970 c'est facilement reconvertissable par après en faisant par exemple
date('d-m-Y H:i:s',$timestamp); (voir fonction date() de php.
Et pour votre problème, pourquoi ne pas tout simplement faire comme suit
1 je récupère les données du formulaire
2 je les vérifie
3 si ok j'envoi un mail au "responsable"
4 j'insère les données dans la DB
5 fin de l'execution du script
3 et 4 peuvent être inversés, evidemment dans ce cas disparition du bouton "aviser le responsable"
Maintenant si il faut toujours ce bouton, il faut effectivement penser au fait que 2 personnes renseignerait des données en même temps avec un champ est_envoye qui aura comme valeur par défaut 0 et 1 si envoyé, c'est plus facile selon moi que le type boolean sous mysql.
| Calao a écrit : Le champ date est le meilleur compromis mais alors date au format timestamp Unix c'est à dire date('U'); en php qui renvoi le nombre de secondes depuis le 1/01/1970 c'est facilement reconvertissable par après en faisant par exemple
|
Merci Calao, vos propositions sont trés pertinantes, je vais voir laquelle correspond le mieux à notre situation.
Encore merci à vous.
Cordialement
Il y a 1645 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
