Votre question

Script PHP [RESOLU]

Tags :
  • Script
  • Programmation
Dernière réponse : dans Programmation
18 Septembre 2009 16:38:52

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

Autres pages sur : script php resolu

18 Septembre 2009 18:28:11

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
m
0
l
18 Septembre 2009 18:39:09

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
m
0
l
Contenus similaires
19 Septembre 2009 12:10:22

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 :pt1cable: 
Tu as un booléen pour savoir si l'enregistrement a été traité ?
m
0
l
19 Septembre 2009 12:48:01

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.
m
0
l
20 Septembre 2009 20:21:12

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.
m
0
l
22 Septembre 2009 21:48:04

Calao a dit :
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.


Merci Calao, vos propositions sont trés pertinantes, je vais voir laquelle correspond le mieux à notre situation.
Encore merci à vous.
Cordialement
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS