Champ d'1 table SQL résultat de 2 autre champ

steve.bru -  
 miked -
Bonjour,

J'utilise une base de données dont une table comporte (en tout cas) 3 champs:
- 'qteCommandee' (alimentée via requête SQL)
- 'qteVendue' (alimentée via requête SQL)
- 'qteSolde' (alimentée ???)

'qteSolde' devra être (comme vous l'avez sûrement déjà deviné) égal à ('qteCommandee' - 'qteVendue').

Par contre, comment le remplir automatiquement ce champ ?
MySQL peut-il le faire automatiquement ? Faut-il le faire en PHP après avoir rempli 'qteCommandee' et 'qteSolde' ?

Merci pour vos conseils/idées !

Steve B.
A voir également:

3 réponses

kifouillou Messages postés 172 Statut Membre 9
 
Ben tu fais ton calcule en php et tu insère ta variable resultat via SQL.
0
dudu134 Messages postés 2877 Statut Membre 608
 
Bonjour,
essaye ceci :

$rsql1 =" select qtecommandee,qtevendue from nom_de_ta_table ";
$req3 = mysql_query($rsql1) or die('Erreur SQL !'.$rsql1.'<br>'.mysql_error());
while($data = mysql_fetch_array($req3))
{
$qtecommandee=$data['qtecommandee'];
$qtevendue=$data['qtevendue'];


$qtesolde=$qtecommandee-qtevendue;
}
$sql =" UPDATE nom_de_ta_table SET qtesolde = $qtesolde";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());

tu sera peut-être obligé un WHERE au select et au update en fonction du nom de l'article :

$rsql1 =" select qtecommandee,qtevendue from nom_de_ta_table where nom_article";
$req3 = mysql_query($rsql1) or die('Erreur SQL !'.$rsql1.'<br>'.mysql_error());
while($data = mysql_fetch_array($req3))
{
$qtecommandee=$data['qtecommandee'];
$qtevendue=$data['qtevendue'];


$qtesolde=$qtecommandee-qtevendue;
}
$sql =" UPDATE nom_de_ta_table SET qtesolde = $qtesolde where nom_article";
$req = mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
0
miked
 
Salut.
Sinon tu peux créer un trigger sql qui recalcule la valeur dans qteSolde lorsque tu mets à jour l'une des autres tables.
0