2016-11-16 71 views
-2

我试图只echo $ classname一次。 所以它就是这样的例子。

幼犬

1等等等等

第二谁就

第三额外

目前它表明这样的:

幼犬

1等等等等

幼犬

第二谁就

幼犬

第三额外

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

 
\t \t <?php }}} ?>

回答

0

所以,不要你为什么使用<table> while循环中知道,这将打印,按您没有的行。

这里是基本的例子,可以存储在数组中的值比用您的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循环使用增量变量正如其他答案中所述。

1

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

$ctr = 0; 
while{ 
    $classname = $row['class_name']; 

    if($ctr == 0){ 
    echo $classname; 
    $ctr++; 
    } 

    //display the rest 
    ... 
} 
0

您可以通过指数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++; }}} ?> 
+0

这一工作的感谢 –

+0

,但仍然会打印出表格多次。 – devpro

+1

是的,它会的,但我只是提供多次添加类名的解决方案 – Jigar7521

0

开闭<Table>标签应该是你的循环之外,如果你希望只有一个表。如果你想有一个包含类似下面的代码显示的2个单元格的行即使<tr>标签应该包括<td>标签:

<?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>