Page 1 sur 1
Affichage du dernier enregistrement
Posté : 30 août 2005, 23:19
par Divad
Bonjour,
Je cherche à connaitre le dernier enregistrement dans une table avec un champ qui contient des valeurs numérique.
Si je fais :
je ressort la plus grand valeur numérique qui n'est pas forcément le dernier enregistrement.
Si je supprime le DESC je n'ai rien de mieux. Je suis sur que c'est gros comme une maison mais là je sèche.
Si quelqu'un parmis vous pouvais me donner le truc, ça serait sympa.
Merci.
Posté : 31 août 2005, 00:28
par finipe
L'idéal c'est de prévoir un champ "id" en auto_increment, qui donne une carte d'identité unique à chacun de tes enregistrements. Du coup ton dernier enregistrement est très facile à retrouver :
Posté : 31 août 2005, 07:42
par Divad
Je sais bien mais il ni à pas de champ "id" en auto_increment

Posté : 31 août 2005, 07:57
par Cyrano
Quel type de point de repère peux-tu utiliser ? as-tu un champ de type DATETIME qui serait automatiquement initialisé dans la table lors de l'enregistrement par exemple ?
Posté : 31 août 2005, 08:02
par Divad
La bonne blague c'est que je n'ai rien. Voici la structure de ma table :
CREATE TABLE `recap` (
`num` text NOT NULL,
`nom` text NOT NULL,
`ville` text NOT NULL,
`ncontrat` text NOT NULL,
`datedebut` date NOT NULL,
`datefin` date NOT NULL,
`type` text NOT NULL,
) TYPE=MyISAM;
Dans le champ 'num' j'ai des nombres à 8 chiffres qui ne suivent pas mais je doit connaitre le dernier et je commence à m'arracher les cheveux !
Posté : 31 août 2005, 08:10
par Cyrano
Suggestion de modification:
Code : Tout sélectionner
CREATE TABLE `recap` (
`num` INT NOT NULL auto_increment PRIMARY KEY,
`nom` VARCHAR(64) NOT NULL,
`ville` VARCHAR(32) NOT NULL,
`ncontrat` VARCHAR(64) NOT NULL,
`datedebut` date NOT NULL,
`datefin` date NOT NULL,
`type` VARCHAR(32) NOT NULL,
) TYPE=MyISAM;
Je mets une réserve sur la valeur maximum pour le champ "type", et j'ai supposé que "ncontrat" correspond à un numéro de contrat pouvant comporter des lettres, mais un champ TEXT est complètement injustifié, de même que le champ num en TEXT, c'est original aussi, pour les calculs, bonjour l'angoisse.
Bon, si tu ne mets pas le champ num en INT auto_increment, il te reste peut-être le champ "ncontrat" qui peut te servir de repère, ça dépend quelle règle tu utilises pour définir la valeur du champ: il doit bien y avoir une chronologie ou une méthode exploitable pour classer les lignes ?
Posté : 31 août 2005, 12:42
par finipe
Tu devrais malgré tout mettre un champ id en auto_increment. A priori, ça ne gêne en rien pour tes manipulations sur la table ou tes enregistrements, et puis c'est pas pour le peu de place que ça prend en plus.
Et c'est tellement pratique

Posté : 31 août 2005, 12:45
par pjl
de toute facon, ca doit correspondre à une logique et ce n'est pas MySQL qui va deviner cette logique.
Posté : 31 août 2005, 19:04
par Divad
Effectivement il y a eu quelques "boulettes" lors de la création de la table mais je les corrige avec ta suggestion Cyrano.
L'auto_increment est effectivement le plus simple. Je suis obliger de rajouter un champ de plus car je ne peux absolument pas mettre un des champ existant en auto_increment car j'en ai besoin pour plein d'autre binze.
Actuellement tout est en ordre. Pas de bug constaté. Merci pour le tuyau mais dès mon premier post j'avais en partie raison en disant que c'était gros comme une maison
PS :Cyrano, j'adore ta signature. Le seul problème c'est que je ne connais l'adresse de ce qui devait êtr e à l'époque un soit disant codeur
