De l'interrogation d'une base à l'utilisation des données reçues comme variables

cs_astrolab Messages postés 7 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 30 mai 2004 - 8 avril 2004 à 20:10
cs_brice57 Messages postés 15 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 15 avril 2004 - 10 avril 2004 à 01:01
Bonjour à tous
et merci de vous interresser à mon problème.
Supposons une base de donnée avec 4 champs:
id, nom d'une personne, historique, poids.

Avec un formulaire, on peut facilement remplir cette base de donnée.
Mais le poids de la personne change et il serait interessant de conserver l'ancienne valeur dans le champ historique.

Comment faire pour questionner la base de donnée afin d'obtenir l'ancien poids que l'on transforme en variable pour le stocker dans historique.
En même temps il serait utile de pouvoir saisir le nouveau poids.

Merci d'avance pour vos suggestions.
Astro.

3 réponses

cs_brice57 Messages postés 15 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 15 avril 2004
9 avril 2004 à 18:25
une idée :

tu as une table avec toutes les caractéristiques précédemment citées. il faut que tu crées une autre table dans avec une clé primaire composée de la date de la mise à jour du poids ainsi que l'id de la personne (qui est alors une clé étrangère). tu mettras dans cette table l'ancien poids avant mise à jour.

il ne te restera plus qu'à compléter cette table a chaque fois que tu mettras le poids à jour et tu pourras l'interroger pour avoir ton historique
0
cs_astrolab Messages postés 7 Date d'inscription samedi 27 mars 2004 Statut Membre Dernière intervention 30 mai 2004 1
9 avril 2004 à 20:23
Merci pour ta réponse.

l'idée d'une nouvelle table est intéressante.

Mais ne penses-tu pas que

$date=date("Y-m-d");
$poids2=$_POST['poids'];
$select = "SELECT * FROM matable WHERE..." ;
$rc=mysql_query($select) or die ('erreur : '.mysql_error());
$nbre=mysql_num_rows($rc) or die ('erreur2 :'.mysql_error());

for ($i=0 ; $i<$nbre ; $i++){
$t = mysql_fetch_array($rc) or die ('erreur3 :'.mysql_error());

$date1=$t[date];
$historique1=$t[historique];
$poids1=$t[poids];
}

$update = "UPDATE matable SET historique='$historique1''$date1''$poids1', poids='$poids2', date='$date' WHERE ... "

Quels sont les avantages par rapport à cette méthode ?

Merci d'avance
0
cs_brice57 Messages postés 15 Date d'inscription vendredi 28 novembre 2003 Statut Membre Dernière intervention 15 avril 2004
10 avril 2004 à 01:01
tout dépend de tes besoins. si tu n'as besoin que de la dernière valeur et que tu fais les mises à jour à interval régulier ta solution est tout à fait bonne. si au contraire tu aimerais connaitre l'historique de manière précise dans ce cas une nouvelle table s'impose. et le fait d'utiliser une autre table plutôt que de stocker une liste de valeur optimisera ta base.
0
Rejoignez-nous