Vous n'êtes pas identifié(e).
boujour! la communauté,je suis nouveau parmi vous et j'ai un problème concernant le calcul de la somme des enregistrements journaliers d'un champ.Offert avec le code ci-dessous, je avoir
$manque= $totaux-$reception avec $totaux la somme des enregistrements journalier du champ 'total'.Or totaux ne figure pas dans les champs de ma table.Avec ce j'ai essayé de faire il m'affiche
$manque=-$reception.Aider moi à trouver le code approprié ou ce qu'il faut corrigé.Merci d'avance
ma table se présente comme suit:
<?php require_once("dbmysqli.php");
/////////////////////////////////////////////////////////////////
///////////////////////////créer une base de donnée pour compte1
$query="CREATE TABLE IF NOT EXISTS compte1(ID int NOT NULL AUTO_INCREMENT,
compteurinitial VARCHAR(150),
compteurfinal VARCHAR(150),
cuveinitial VARCHAR(150),
cuvefinal VARCHAR(150),
reception VARCHAR(150),
manque VARCHAR(150),
date VARCHAR(150),
quantite VARCHAR(150),
prixunitaire VARCHAR(150) ,
total VARCHAR(150),
PRIMARY KEY(ID))";
voilà ce que j'ai essayé de faire:
<?php require_once("dbmysqli.php");
if(isset($_POST['valider'])){
date_default_timezone_set('UTC');
/////////////////POST
$compteurinitial=$_POST['compteurinitial'];
$compteurfinal=$_POST['compteurfinal'];
$cuveinitial=$_POST['cuveinitial'];
$cuvefinal=$_POST['cuvefinal'];
$reception=$_POST['reception'];
$manque=$_POST['manque'];
$date=$_POST['date'];
$quantite=$_POST['quantite'];
$prixunitaire=$_POST['prixunitaire'];
$total=produit($_POST['quantite'],$_POST['prixunitaire']);
$query="INSERT INTO compte1(compteurinitial,compteurfinal,cuveinitial,cuvefinal,reception,manque,date,quantite,prixunitaire,total)
VALUES('".$compteurinitial."','".$compteurfinal."','".$cuveinitial."','".$cuvefinal."','".$reception."','".$manque."','".$date."','".$quantite."','".$prixunitaire."','".$total."')";
$query="SELECT Sum('total') as totaux FROM compte1 WHERE date='".date('d-m-Y')."'";
$totaux=Sum($total);
$manque=$totaux-$reception;
$result=mysqli_query($link,$query);
if ($result)
{echo'
<p>Compteur Initial:__'.$compteurinitial.'__ </p>
<p>Compteur Final:__'.$compteurfinal.'__ </p>
<p>Cuve Initial:__'.$cuveinitial.'__ </p>
<p>Cuve Final:__'.$cuvefinal.'__ </p>
<p>Réception:__'.$reception.'__ </p>
<p>Manque:__'.$manque.'__ </p>
<p>Date:__'.date('d-m-Y').'__ </p>
<p>Quantite:__'.$quantite.'__</p>
<p>Prixunitaire:__'.$prixunitaire.'__</p>
<p>Total:__'.$total.'__</p>
';
mysqli_close($link);
}
else{
echo'faux';
mysqli_close($link);
}
}//////fin valider
///////FORMULAIRE
else
{$content='
<form name="form1" id="form1" method="post" action="#"><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="date">Date:</label><input required type="text" size="60" name="date" id="date"/><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="compteurinitial">Compteur Initial:</label><input required readonly type="number" size="60" name="compteurinitial" id="compteurinitial" value="0"/><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="compteurfinal">Compteur Final:</label><input required type="number" size="60" name="compteurfinal" id="compteurfinal"/><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="cuveinitial">Cuve Initial:</label><input required readonly type="number" size="60" name="cuveinitial" id="cuveinitial" value="0"/><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="cuvefinal">Cuve Final:</label><input required type="number" size="60" name="cuvefinal" id="cuvefinal"/><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="reception">Réception:</label><input required type="number" size="60" name="reception" id="reception"/><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="manque">manque:</label><input required type="number" size="60" name="manque" id="manque"/><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="quantite">Quantité:</label><input required type="number" size="60" name="quantite" id="quantite"/><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="prixunitaire">Prix Unitaire:</label><input required type="number" size="60" name="prixunitaire" id="prixunitaire"/><br/>
<label style="display:inline-block; text-align:right; vertical-align:middle; color:#0000FF; width:50%"for="prixunitaire"></label><input required type="submit" name="valider" id="valider" value="valider"/><br/>
</form>
';
print $content;
}
function produit($quantite,$prixunitaire)
{
return $quantite*$prixunitaire;
}
function sum($total)
{
$totaux=Sum($total);
return $totaux;
}
function soustraction($totaux,$reception)
{
$manque=$totaux-$reception;
return $manque;
}
?>
<Né pour règner>
Hors ligne
Bonjour,
Plein de choses à dire
1) Toutes vos colonnes de votre table compte1 sont définies en varchar. Donc SUM('total') ne pourra rien vous donner de bon, car si on peut faire la somme de nombres (entiers ou non) il est plus difficile de le faire avec des caractères (enfin si: cela s'appelle de la concaténation, mais cela n'a rien à voir avec le sujet qui vous préoccupe).
2) Ensuite vous avez le même problème en PHP. Vous souhaitez additionner ou multiplier des variables, sans en vérifier le typage. Or vous travailler avec des chaînes de caractères non des nombres. Rappel pour forcer le typage : entiers : intval(), décimaux : floatval(). Vous ne vérifiez pas non plus la valeur des variables au moment de vous en servir... or il vous faut toujours vérifier ce que vous avez pour être certain de ce que vous allez obtenir...
Bonne soirée
Edit: à lire : http://forum.phpdebutant.org/topic-7502 … age-1.html
Dernière modification par Jc2 (25-04-2016 10:13:39)
Hors ligne