查询的目的是找出某只狗在演出中获得“第一”排名的次数,并将它们总计进行展示
我试图返回数据库中有多少个结果与“ 1st”匹配的字符串。答案是4,但是没有显示出来,因为显示为1111。因此,如何显示为数字4。
<?php
if ( isset($_GET['dog_id']) )
{
$query = "SELECT result.* , dogs.dog_name, shows.show_title, shows.show_id, dogs.sire
FROM `result`
INNER JOIN `dogs` ON result.dog_id = dogs.dog_id
INNER JOIN `shows` ON result.show_id = shows.show_id
AND result.dog_id = ".$_GET['dog_id']."
ORDER BY class_name DESC";
$select_all_shows_query = mysqli_query($connection,$query);
while($row = mysqli_fetch_array($select_all_shows_query)) {
$dog_id = $row['dog_id'];
$class_name = $row['class_name'];
$award = $row['award'];
$placement = $row['placement'];
?>
<?php
if ($placement == '1st'){
echo ($placement[0]);
}
?>
答案 0 :(得分:1)
您需要放置一个定义为
的计数器<?php $count = 0 ?>
,然后每当sql查询返回结果为时,计数器就增加1。
<?php $count++ ?>
答案 1 :(得分:1)
您的输出是从...生成的
if ($placement == '1st'){
echo ($placement[0]);
}
由于$placement
是1st
,所以当您输出$placement[0]
时,字符串的[0]
是第一个字符-1
。
相反,您需要计算1st的数量,因此在循环之前
$firsts = 0;
然后在找到第一名时递增此值。...
if ($placement == '1st'){
$firsts++;
}
然后在循环之后...
echo "First places={$firsts)".PHP_EOL;
答案 2 :(得分:1)
您正在使用placement[0]
,它将给出第0个字节。在使用if条件时,只有在放置位置为1st时,它才会进入循环。因此,第0个字节将始终为1。
您需要创建一个变量并将其递增,然后在while循环结束之后,您将拥有所需的总计数。