如何设置mysql查询和php代码,我有这个mysql:
CREATE TABLE IF NOT EXISTS `ocene` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`predmeti` varchar(255) NOT NULL,
`ocena1` varchar(255) NOT NULL,
`ocena2` varchar(255) NOT NULL,
`ocena3` varchar(255) NOT NULL,
`ocena4` varchar(255) NOT NULL,
`ocena5` varchar(255) NOT NULL,
`ocena6` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 CHARSET=utf8;
所以它采用以下值为ocena1 - ocena6的范围可以从0到5.例如,如果:
ocena1 = 5
ocena2 = 4
ocena3 = 0
ocena4 = 0
ocena5 = 0
ocena6 = 2
该函数应该忽略所有那些值为0的行,在这种情况下,11的总和将与3共享。我尝试了一切,但我没有成功。提前致谢。
$con=mysqli_connect("localhost","root","","evidencija_ocena");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$sql = "SELECT predmeti,( ocena1 + ocena2 + ocena3 + ocena4 + ocena5 + ocena6) AS prosek FROM ocene group by id";
if ($result=mysqli_query($con,$sql))
{
// Fetch one and one row
while ($row=mysqli_fetch_row($result))
{
printf ("%s (%s) <br />",$row[0],$row[1]);
}
// Free result set
mysqli_free_result($result);
}
$sql = "SELECT SUM(prosek) FROM ocene";
if ($result=mysqli_query($con,$sql))
{
// Print out result
while ($row = mysqli_fetch_array($result)){
echo "PROSEK" . $row['SUM(predmeti)'] . "" ;
echo "<br />";
}
}
mysqli_close($con);
和:
$brojOcena = 0
$suma = 0
if($ocena1 > 0) {
$suma += $ocena1;
$brojOcena += 1;
}
if($ocena2 > 0) {
$suma += $ocena2;
$brojOcena += 1;
}
if($ocena3 > 0) {
$suma += $ocena3;
$brojOcena += 1;
}
...
$prosek = $suma / $brojOcena
如果要获取非零列的数量,可以执行以下操作:
SELECT predmeti,
(ocena1 != '0') + (ocena2 != '0') + (ocena3 != '0') + (ocena4 != '0') + (ocena5 != '0') + (ocena6 != '0') AS prosek_count,
ocena1 + ocena2 + ocena3 + ocena4 + ocena5 + ocena6 AS prosek
FROM ocene
条件表达式是1
,如果它是真的,0
如果它是假的,你可以将它们加在一起得到计数。