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

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 に答える