如何只显示一次$classname


How to show $classname only once

我试图只回$classname一次。例如,它显示如下:

的小狗狗

第一个

2日谁额外

3

当前显示如下:

的小狗狗

第一个

的小狗狗

2日谁

的小狗狗额外

3

<?php
		
		// SO UPDATE THE QUERY TO ONLY PULL THAT SHOW'S DOGS
		$query = "SELECT c.* , p.* FROM result c,dogs p WHERE c.dog_id=p.dog_id";
	
		
		$result = mysqli_query($connection, $query) or trigger_error
		("Query Failed! SQL: $query - Error: ". mysqli_error
		($connection), E_USER_ERROR);
		
		if ($result) {
		while ($row = mysqli_fetch_assoc($result)) {
		$placement = $row['placement'];
		$classname = $row['class_name'];
		$dog_name = $row['dog_name'];
		$award = $row['award'];
		
		
		
		
		?>
		
		
		<table>
			<tr>
			<td><strong><?php echo $classname ?></strong> </td><br>
			</tr>
			<tr>
			<td><strong><?php echo $placement, $award ?></strong>  <?php echo $dog_name ?></td>	
			</tr>
		</table>
		
		
		
		
		
		
    	
		<?php  }}} ?>

使用counter检查是否已经显示:

$ctr = 0;
while{
  $classname = $row['class_name'];
  if($ctr == 0){
    echo $classname;
    $ctr++;
  }
  //display the rest
  ...
}

所以,不知道为什么你在while循环中使用<table>,这将根据你的行no来打印。

这是一个基本的例子,你可以将值存储在一个数组中,而不是在HTML中使用它:

例子:

<?php
if ($result) {
  $myarr = array();
  while ($row = mysqli_fetch_assoc($result)) {
    $myarr[$row['class_name']][] = $row;  //store values into an array against each class in group
  }
}
foreach ($myarr as $key => $value) {
    echo "Class Name: ". $key."<br/>"; // will print class name
    foreach ($value as $fvalue) {
        echo "Placement: ".$row['placement']."<br/>";; // placement
        echo "Dog Name: ".$row['dog_name']."<br/>"; // dog name
        echo "Award: ".$row['award']."<br/>";; // award
    }
}
?>

另一个解决方案是在while循环中使用增量变量,如其他答案所述。

您可以通过在while循环中使用索引来跟踪记录,如:

<?php
            // SO UPDATE THE QUERY TO ONLY PULL THAT SHOW'S DOGS
            $query = "SELECT c.* , p.* FROM result c,dogs p WHERE c.dog_id=p.dog_id";

            $result = mysqli_query($connection, $query) or trigger_error
            ("Query Failed! SQL: $query - Error: ". mysqli_error
            ($connection), E_USER_ERROR);
            if ($result) {
            $i = 1;
            while ($row = mysqli_fetch_assoc($result)) {
            $placement = $row['placement'];
            $classname = $row['class_name'];
            $dog_name = $row['dog_name'];
            $award = $row['award'];
            ?>  
            <table>
                <tr>
                <td><strong><?php if($i==1) { echo $classname; } ?></strong> </td><br>
                </tr>
                <tr>
                <td><strong><?php echo $placement, $award ?></strong>  <?php echo $dog_name ?></td> 
                </tr>
            </table>




            <?php $i++;  }}} ?>

如果你希望只有一个表,那么打开和关闭<Table>标签应该在你的循环之外。即使<tr>标签也应该包含<td>标签,如果您希望像下面的代码那样包含2个单元格:

<?php
    // SO UPDATE THE QUERY TO ONLY PULL THAT SHOW'S DOGS
    $query      = "SELECT c.* , p.* FROM result c,dogs p WHERE c.dog_id=p.dog_id";
    $result     = mysqli_query  ($connection, $query) or trigger_error
                                ("Query Failed! SQL: $query - Error: ".
                                mysqli_error($connection), E_USER_ERROR);
    ?>
    <table>
    <?php
    if ($result) {
        while ($row = mysqli_fetch_assoc($result)) {
            $placement  = $row['placement'];
            $classname  = $row['class_name'];
            $dog_name   = $row['dog_name'];
            $award      = $row['award'];
    ?>
        <tr>
            <td>
                <strong><?php echo $classname ?></strong> 
                <!-- DO YOU NEED THIS <BR>TAG HERE? <br> -->
            </td>
            <td>
                <strong><?php echo $placement, $award ?></strong><?php echo $dog_name ?>
            </td>
        </tr>
        <!-- EXCEPT IF YOU WISH TO HAVE ONE COLUMN, THE ROW BELOW IS UNNECESSARY -->
        <!--
        <tr>
            <td>
              <strong><?php echo $placement, $award ?></strong>  <?php echo $dog_name ?>
            </td>
        </tr>
        -->
    <?php 
        }   // CLOSE THE WHILE LOOP;
        }   // CLOSE THE IF STATMENT;
    ?>
</table>