2016-11-16 9 views
-2

Ich versuche $ classname nur einmal zu echo. So zeigt es sich zum Beispiel.

Hündchen

1. blah blah

2. wer

3. Extra

derzeit es zeigt, wie:

Hündchen

1. bla bla

Hündchen

2. wer

Hündchen

3. Extra

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

Antwort

0

Also, ich weiß nicht, warum sind Sie <table> innerhalb der while-Schleife, wird dies als pro Ihre Neins der Zeilen drucken .

Hier ist das Grund Beispiel ist, können Sie die Werte in einem Array speichern, als es mit Ihrem HTML verwenden:

Beispiel:

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

Andere Lösung wird unter Verwendung von inkrementalen Variable in while-Schleife wie in anderen Antworten erwähnt.

1

Verwenden counter überprüfen, ob es bereits angezeigt wird:

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

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

    //display the rest 
    ... 
} 
0

Sie Track Record in einen Index halten, während Schleife wie:

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

Das funktionierte dank –

+0

aber immer noch wird diese Tabelle mehrmals gedruckt werden. – devpro

+1

ja es wird, aber ich habe nur eine Lösung in Bezug auf das Hinzufügen Klassenname mehrere Zeit – Jigar7521

0

Das Öffnen und Schließen <Table> Schlagwörter außerhalb der Schleife sein sollte wenn Sie nur eine Tabelle zu erwarten. Auch sollten die <tr> Schlagwörter umfassen die <td> Schlagwörter, wenn Sie möchten Reihen haben, die 2-Zellen wie der folgende Code zeigt:

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