2011-05-13 2 views
0

Mon script PHP prend deux dates à partir d'un formulaire et en essayant d'obtenir le calcul du bénéfice entre ces deux dates.calcul en utilisant la plage de dates ne donne pas de sortie en php

Ma table de profit dans une base MySQL sont: id (int), order_profit (float) et order_date (date)

les noms de champs de date de formulaire sont date_from et date_to

Le code pour la script php ci-dessous:

<?php 
include("dbconnect.php"); 
$from_date=$_POST['date_from']; 
$to_date=$_POST['date_to']; 
echo "Small date : ".$from_date."<br>"; 
echo "Large date : ".$to_date; 

    $count=1; 


$queryA=mysql_query("SELECT SUM(order_profit) FROM profit WHERE profit_date BETWEEN STR_TO_DATE($from_date, '%Y/%m/%d') AND STR_TO_DATE($to_date, '%Y/%m/%d') "); 

while($row = mysql_fetch_array($queryA)){ 
     $count++; 

     echo "Total Profit"." =". $row['SUM(order_profit)']; 
     } 
    echo $count;  
      echo "<br />"; 


?> 

lorsque le résultat montre qu'il affiche deux dates et la valeur de comptage 2. cela signifie que le corps de la boucle while est exécutée une fois, mais aucune valeur de profit est montré. Mais aucune erreur n'est montrée.

S'il vous plaît aidez-moi à cet égard

+0

Vérifiez que str_to_date dans la requête fonctionne correctement. Cela pourrait être une erreur de conversion ou un retour de null pour indiquer un échec, ce qui "casse" la requête. –

Répondre

0

Vérifiez que vous utilisez le nom correct de la colonne:

var_dump($row); 

Ou nommez explicitement:

SELECT SUM(order_profit) as sum 
+0

merci pour votre réponse. Alors comment sortir la somme? – user752710

+0

... et enfin trouver votre résultat dans '$ row ['sum'];' – sics

+0

il ne fonctionne toujours pas – user752710

0

Vous pouvez également écho SQL interrogez et exécutez-le dans votre éditeur SQL pour voir ce qu'il retourne réellement. J'ai eu un certain nombre de problèmes php introuvables qui ont été résolus en vérifiant si ma requête était valide.

0

Vérifiez cela. Les dates IMHO doivent être indiquées. Vérifiez également les erreurs mysql dans le cas où il y en a: mysql_error() est votre ami.

<?php 
include("dbconnect.php"); 
$query = "SELECT SUM(order_profit) as profitsum FROM profit "; 
$query .= "WHERE profit_date BETWEEN STR_TO_DATE('".$_POST['date_from']."', '%Y/%m/%d') "; 
$query .= "AND STR_TO_DATE('".$_POST['date_to']."', '%Y/%m/%d')"; 

// to check the query 
echo $query ."<br/>"; 

$result = mysql_query($query) or die(mysql_error()); 

$row = mysql_fetch_array($result); 
echo "Total Profit: ".$row['profitsum']."<br/>; 

?> 
+0

merci beaucoup ... ça fonctionne correctement ... un grand soulagement pour moi – user752710

Questions connexes