1

我正在尝试采用这种风格的代码并根据从数据库返回的机器数量来生成。

我有这个:

 <table style="width: 100%; height:85%;table-layout:fixed;text-align:center;">
  <tr>
    <td><?php echo $array[0]; ?> <span class="blue">#1</span><br>
    sets <span class="blue">1</span> reps <span class="blue">50</span><br>
    weight <span class="blue">25</span></td>
    <td><?php echo $array[1]; ?> <span class="blue">#2</span><br>
    sets <span class="blue">1</span> reps <span class="blue">100</span><br>
    weight <span class="blue">40</span></td>
  </tr>

  <tr>
    <td><?php echo $array[2]; ?> <span class="blue">#3</span><br>
    sets <span class="blue">2</span> reps <span class="blue">25</span><br>
    weight <span class="blue">20</span></td>
    <td><?php echo $array[3]; ?> <span class="blue">#4</span><br>
    sets <span class="blue">3</span> reps <span class="blue">25</span><br>
    weight <span class="blue">30</span></td>
  </tr>

</table>    

这是从数据库中检索机器的数据库代码:

$sql1 = "SELECT m1.machine_id, m2.* FROM userPlanDetail AS m1 LEFT JOIN machines AS m2 ON    m1.machine_id = m2.machine_id WHERE `user_id` = '$user_id1' AND `cardio` = 0";
$retval1 = mysql_query( $sql1, $conn );
$array = array();

while ($row = mysql_fetch_array($retval1, MYSQL_ASSOC)) {
    $array[] = $row['machine_name'];
}

我希望代码检测数据库中有多少机器不是有氧运动机器,并相应地生成表行数。

这是一个视觉表示:

在此处输入图像描述

4

3 回答 3

2

由于您将所有结果加载到一个数组中,您可以使用 array_chunk 将数组分成行,然后相应地输出。

 $array = array_chunk($array, 4);
 echo '<table style="width: 100%; height:85%;table-layout:fixed;text-align:center;">';
 foreach($array as $row){
     echo "<tr>";
     foreach($row as $cell){
        // echo out your tds for format each cell here.  
     }
     echo "</tr>";
 }
 echo '</table>';
于 2013-09-03T22:22:08.250 回答
0
<?php
    for ($x=0; $x<sizeOf($array); $x++) {
        echo '<tr><td>Array Data Here</td></tr>';
    }
?>
于 2013-09-03T22:23:56.550 回答
0

更新了硬编码的机器属性(不是一个好主意)

$machine_atts = array(
    'bicep curl' => array( 'sets' => 1, 'reps' => 50, 'weight' => 25 ),
    'cable chest press' => array( 'sets' => 1, 'reps' => 100, 'weight' => 40 ),
    'lat pulldown' => array( 'sets' => 2, 'reps' => 25, 'weight' => 20 ),
    'tricep extension' => array( 'sets' => 3, 'reps' => 25, 'weight' => 30 ),
);
$sql1 = "SELECT m1.machine_id, m2.* FROM userPlanDetail AS m1 LEFT JOIN machines AS m2 ON    m1.machine_id = m2.machine_id WHERE `user_id` = '$user_id1' AND `cardio` = 0";
$retval1 = mysql_query( $sql1, $conn );
$array = array();

$i=0;
while ($row = mysql_fetch_array($retval1, MYSQL_ASSOC)) {
    $i++;
    $sets = $machine_atts[$row['machine_name']]['sets'];
    $reps = $machine_atts[$row['machine_name']]['reps'];
    $weight = $machine_atts[$row['machine_name']]['weight'];
    $array[] = '<td>'.$row['machine_name'].'> <span class="blue">'.$i.'</span><br>sets <span class="blue">'.$sets.'</span> reps <span class="blue">'.$reps.'</span><br>weight <span class="blue">'.$weight.'</span></td>';
}

echo '<table style="width: 100%; height:85%;table-layout:fixed;text-align:center;">';
foreach ( array_chunk( $array, 2 ) as $chunk )
    echo '<tr>' . implode('', $chunk ) . '</tr>';
echo '</table>';

原始答案

假设组数、重复次数和权重在查询的结果集中:

$sql1 = "SELECT m1.machine_id, m2.* FROM userPlanDetail AS m1 LEFT JOIN machines AS m2 ON    m1.machine_id = m2.machine_id WHERE `user_id` = '$user_id1' AND `cardio` = 0";
$retval1 = mysql_query( $sql1, $conn );
$array = array();

$i=0;
while ($row = mysql_fetch_array($retval1, MYSQL_ASSOC)) {
    $i++;
    $array[] = '<td>'.$row['machine_name'].'> <span class="blue">'.$i.'</span><br>sets <span class="blue">'.$row['sets'].'</span> reps <span class="blue">'.$row['reps'].'</span><br>weight <span class="blue">'.$row['weight'].'</span></td>';
}

echo '<table style="width: 100%; height:85%;table-layout:fixed;text-align:center;">';
echo '<tr>' . implode('</tr><tr>', array_chunk( $array, 2 ) ) . '</tr>';
echo '</table>';
于 2013-09-03T22:59:19.027 回答