Incrementation d une variable

Fermé
DoC__GYne Messages postés 16 Date d'inscription samedi 12 juillet 2003 Statut Membre Dernière intervention 25 juillet 2009 - 24 juil. 2009 à 20:58
PMax-57 Messages postés 195 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 12 février 2017 - 25 juil. 2009 à 10:08
Bonjour,
j ai fait un code php pour insertion de quelques infos dans une table et je vouderai incrementé une variable mais j y arrive pas
voila le code que je realisé


$nom = $_POST['nom'];
$adrs = $_POST['adrs'];
$imm = $_POST['imm'];
$num_loc = $_POST['num_loc'];
$prx = $_POST['prx'];
$date = date("my");
$ref=0;


$bd=mysql_select_db("loyer");
if(!$bd)
{
echo"Base de données introuvable...";
exit(2);
}



$req="INSERT INTO locataires (id,Nom,Adresse,Immeuble,Num_local,Prix,Ref_client) VALUES(\"

\",\"$nom\",\"$adrs\",\"$imm\",\"$num_loc\",\"$prx\",\"$date$ref\")";

$res=mysql_query($req);


if(!$res)
{
echo"Erreur de requette...";
}
else
mysql_close($con);
header("Location: 1st.html");

la veleur ref_client je vouderai mettre une reference qui est la date system + une variable qui s incremente de 1 pour chaque enregistrement
quelqu un peut il m aide?
merci

3 réponses

PMax-57 Messages postés 195 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 12 février 2017 40
24 juil. 2009 à 21:35
Salut !

J'ai pas tout bien compris, mais je vais essayer :

On imagine, si la date systeme est du genre DDMMYYYY (ex : 01122009 pour 1er décembre 2009)

On a alors la variable $date = date('DmY');

On sait que cette variable fait TOUJOURS 8 caractères.

On récupère l'ancienne référence enregistrée pour cette date :

@$req = mysql_query('SELECT id, ref_client FROM locataire WHERE ref_client LIKE "'.$date.'%" DESC LIMIT 0,1 '); (récupération du dernier ID et ref_client avec le ref_client commencant par la même date $date)

if (@mysql_num_rows($req)>0){
@$rep = mysql_fetch_object($req);

$lastrefclient = substr($rep->ref_client, 8, 100); // Récupération du lastrefclient, ce qui suit aux 8 premiers caractères.
}
else { $lastrefclient = 0; } // Aucun ref client enregistré.


//Maintenant, on utilise un nouveau ref_client pour l'objet en cours :
$thisrefclient = ''.$date.''.$lastrefclient+1.''; //on incrémente de 1 par rapport au dernier enregistré.


Ensuite tu inseres dans SQL avec ta fonction.

Bon courage !
0
DoC__GYne Messages postés 16 Date d'inscription samedi 12 juillet 2003 Statut Membre Dernière intervention 25 juillet 2009 4
25 juil. 2009 à 02:36
merci de ton implication
ce que je voulais dire pour la reference j ai mis la date juste pour quelle soit une partie homogene pour tt les clients et apres pour les differencier j ai mis une variable $ref auquelle j ai affecté la valeur 0 au debut
ce qui donnera par la suite une reference tel (07090) le mois l année et 0 de la variable $ref
mnt sachant que $date sera stable pour le tt je veux juste incrementé $ref
j ai essayé avec $ref++;
comme j ai essayé de mettre une boucle for(); mais ca n a pas marché
pour l insertion du 1er client j ai aucun probleme et il recois la reference 07090 mnt le 2eme je veux qu il aie la reference 07091

merci enormement encore une fois
0
PMax-57 Messages postés 195 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 12 février 2017 40
25 juil. 2009 à 10:08
Salut,

Ta méthode est comme celle que j'avais expliquer, à l'exception d'avoir les jours dans la date. Tu enleves donc 2 caractères.

la boucle for et la fonction $ref++ s'utilise uniquement lors du log php, en clair elle commence à 0 à chaque fois que tu ouvre ton fichier php.

Là, il faut que tu récupère ta derniere variable ref enregistrée et que tu l'incrémente de 1.
0