在数据库中使用月份名称和年份搜索日期

时间:2012-08-03 10:02:38

标签: php mysql database date

我认为解释会有点混乱......

我有一个表单,您可以选择一个月(mes),一年(ano)和一种运动类型(movimento)

我想要做的是创建一个搜索查询,在数据库(fluxo)中找到您在表单上选择的那3个值中的所有重复数据,我的问题是,当我选择3时SUM我get来自我所拥有的所有类型的运动(tipo),我只想要那些尊重我之前选择的所有3个领域,我想知道是否有可能的方式加入MONTHNAME和YEAR以按数据库搜索重复的日期

这是我的代码:

$result5 = mysql_query('SELECT SUM(valor) AS value_sum FROM fluxo WHERE tipo = "'.$tipo.'" AND MONTNAME(data) = "'.$meses[$mes].'" AND YEAR(data) = "'.$ano.'" having count(tipo, data)>1  '); 
$row5 = mysql_fetch_assoc($result5); 
$sum5 = $row5['value_sum']; 

$n=1; 

echo "<p>Os seus resultados:<p>";



echo "<table border=0>";
echo "<tr bgcolor='#CCFFCC'>";
echo "<td style='width: 100px;'>Tipo</td>";
echo "<td style='width: 100px;'>Movimento</td>";
echo "<td style='width: 100px;'>Valor</td>";
echo "<td style='width: 100px;'>Data</td>";
echo "</tr>";

while($row = mysql_fetch_array($result4)){ 
    echo "<tr bgcolor='#CCCCCC'>";
    echo "<td style='width: 100px;'>".$row['tipo']."</td>";
    echo "<td style='width: 100px;'>".$row['movimento']."</td>";
    echo "<td style='width: 100px;'>".$row['valor']."</td>";
    echo "<td style='width: 100px;'>".$row['data']."</td>";
    echo "</tr>";

}

echo "</table>";

echo "<p> Valor errado, apenas a somar tudo: " .$sum5;

?>

我知道这可能听起来有些混乱

1 个答案:

答案 0 :(得分:0)

要按月/年搜索,我通常会使用以下内容:

$sql = "SELECT * FROM `table` WHERE `date` LIKE '".$year."-".sprintf("%02d",$month)."-%'";

我不知道这是否是性能最佳的解决方案,但它对我使用它的效果非常好。