Récupérer valeur la plus grande

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Récupérer valeur la plus grande

par tibious » 16 janv. 2009, 15:58

Oui, c'est vrai je n'avais pas pensé au risque d'attribution du même numéro. Je vai garder la dernière solution (date et numéro en autoncrement).
Merci pour la réponse.

par Ryle » 16 janv. 2009, 11:59

Ca peut être une solution, mais je pense qu'utiliser la fonction MAX() de ta base de données serait plus explicite et plus facile à maintenir ;) (voire même peut être plus optimisée, mais j'avoue ne jamais avoir comparé les deux solutions)
$select = "SELECT MAX(num_client) AS le_dernier FROM archive";
$result = mysql_query($select);
Mais si tu distingues ta date de ton numéro de client séquentiel, tu as également tout intérêt à passer celui-ci en AUTO INCREMENT, de façon à ce que le numéro soit attribué automatiquement lors de l'insertion d'un nouveau client.
Le principal intérêt est d'éviter d'avoir une erreur ou un numéro client en double si deux personnes exécutent ton script en même temps pour créer un nouveau client (la base retournerait le même numéro client aux deux)

par tibious » 16 janv. 2009, 10:29

Merci pour la réponse, judicieuse.
En suivant ton idée je pourrais avoir un champ avec la date et un champ avec id_client . Par contre est-ce que la façon d'aller chercher la valeur la plus grande est bonne:

Code : Tout sélectionner

$select=mysql_query("SELECT num_client FROM archive ORDER BY num_client DESC LIMIT 1");
Merci encore.

par AB » 16 janv. 2009, 01:48

Le plus simple serait que tu fasses une colonne pour la date et une autre distincte pour le numéro du client. Ainsi tu pourrais faire facilement des recherches et manipulations sur ces deux champs.

Récupérer valeur la plus grande

par tibious » 16 janv. 2009, 01:21

Bonjour à tous, j'utilise des numéro de clients dans une base mysql sous la forme: jjmmaa-numéro.
J'essai d'automatiser la saisie de cette façon:
$select=mysql_query("SELECT num_client FROM archive ORDER BY num_client DESC LIMIT 1");
$row=mysql_fetch_array($select);
$num_client=htmlentities($row['num_client']);

if ($num_client="")
  { $dossier = 1; }
else
  { $dossier = $num_client + 1; }

$date = date("dmY");
$nd1 = substr("$date", 0, 4); 
$nd2 = substr("$date", -2); 
$num_client = $nd1 . $nd2 .'-'. $dossier;
Mon script ne fonctione pas: je n'arrive pas à récupérer le dernier numéro de client pour ajouter 1.
Avez-vous une solution?
Merci d'avance.