1

PHP を使用して MYSQL データベースからテーブルを作成しました。yes含まれているかどうかがチェックされ、含まれている場合にのみ表示される4 つの列があります。唯一の問題は、最初の列repairに何も含まれていないが、後続の列に がある場合、そこに空白の場所を残して正しい列の下に置くのではなく、yes出力yesを列に表示することです。repair列ヘッダーが正しく表示され、データが正しい列に表示されるだけです。これについてどうすればよいかわからないので、助けていただければ幸いです。

//build table for results
echo "<table><tr>";
echo "<th>Part Number</th>";
echo "<th>Serial Number</th>";
echo "<th>Date</th>";

//check whether each element has data
//and only display is data present
if ($repair=="yes") echo "<th>Repair</th>";
if ($upgrade=="yes") echo "<th>Upgrade</th>";
if ($pm=="yes") echo "<th>PM</th>";
if ($nofault=="yes") echo "<th>No Fault</th></tr>";

// printing table rows
while($row = mysql_fetch_array($result))
{
$part=$row['part'];
$serial=$row['serial'];
$date=$row['date'];
$Repair=$row['repair'];
$Upgrade=$row['upgrade'];
$PM=$row['pm'];
$NoFault=$row['nofault'];

echo "<tr>";
echo "<td>$part</td>";
echo "<td>$serial</td>";
echo "<td>$date</td>";
if ($Repair=="yes") echo "<td>YES</td>";
if ($Upgrade=="yes") echo "<td>YES</td>";
if ($PM=="yes") echo "<td>YES</td>";
if ($NoFault=="yes") echo "<td>YES</td>";
echo "</tr>";
}

echo "</table>";
4

3 に答える 3

1

if が false と評価される場合は、空のセルを含める必要があります。このようなもの:

if ($Repair == "yes") {
 echo "<td>yes</td>"
} else {
 echo "<td></td>"
}

この場合、値を td に直接エコーすることもできます。このようなもの:

echo "<td>";
if ($Repair == "yes") echo $Repair;
echo "</td>";
于 2012-08-05T01:53:41.887 に答える
1

このロジックが役立つかもしれません

if ($repair=="yes") echo "<th>Repair</th>" else echo "<th>&nbsp;</th>";

コードも同じ

if ($Repair=="yes") echo "<td>YES</td>" else echo "<td>&nbsp;</td>";
于 2012-08-05T01:54:20.250 に答える