2016-08-07 9 views
3

ich habe zwei Tabellen eine Positionstabelle und Kundentabelle: enter image description hereDynamische Zeilenspanne php while-Schleife

in der Tabelle können Sie die zweite Artikel Artikel-ID siehe 1002 haben zwei entries.and ich will colspan zu, dass hinzufügen Artikel für Spalte 1 und 3.

enter image description here

<table> 
    <tr> 
    <th>Item ID</th> 
    <th>Item Color</th> 
    <th>Customer</th> 
    </tr> 
<?php 
$sql = mysqi_query($con,"select * from item_table"); 
while($row = mysqli_fetch_array($sql)){ 
    ?> 

<tr> 
    <td><?=$row['item_id'];?></td> 
    <td><?=$row['item_color'];?></td> 
    <td> 
     <select> 
     <?php 
     $sql_cust = mysqli_query($con,"select * from customer_tbl"); 
     while($row_cust = mysqli_fetch_array()){ 
     if($row['customer_id'] == $row_cust['customer_id']){ 
      echo "<option selected='selected' >".$row['customer_name']."</option>"; 
     }else{ 
      echo "<option>".$row['customer_name']."</option>"; 
     } 

     <?php 
     } 
     ?> 
     </select> 
    </td> 
    </tr> 


<?php 
} 
?> 
</table> 

Aber es in gewohnter Weise drucken, ich habe keine Ahnung, wie rowspan in loop..please hinzuzufügen schlagen einige Logik seine geschätzt zu lösen.

enter image description here

Antwort

2

Sie können es auf diese Weise versuchen:

Zuerst einen Zähler zu Ihrer Anfrage hinzufügen, wie viele Einträge hat ein bestimmtes Element anzeigt.

Dann, wenn Sie die Elemente durchlaufen, legen Sie die rowspan auf die Anzahl der Einträge des Elements. Unten ist der ganze Code angepasst.

Beachten Sie, dass ich einen Puffer hinzugefügt habe, wo ich festgelegt habe, welches Element bereits angezeigt wurde. Dieses Array wird verwendet, so dass Sie nur eine td mit der gewünschten rowspan öffnen, anstatt es bei jeder Iteration zu tun.

0

Ich habe eine einfache Idee

geben TD eine ID wie

<td id="dynamically-Generate"> (you need to verify that TD id need to be equal in .rowSpan ="here" inside script ) 

und dieses TD gesetzt, wenn dynamisch generieren größer als 1 ist dann nicht

zeigen Sie

und wieder, wenn dynamisch -Generate ist größer als 1, dann verwenden Sie dieses Skript

Verwenden Sie Skript insi de loop und beide dynamisch generieren müssen in jedem Loop gleich sein und nach jedem Loop wechseln