0

値が 0 より大きい列のみを表示するディスプレイを作成したいと考えています。

フィールドと値を表示する私のコード:

echo "<table><tr>";
while ($property = mysql_fetch_field($result))
{
    if($property->name > '0')
    echo "<td>Field name: " . $property->name . "</td>";
}
echo "<tr/>";
while ($row = mysql_fetch_assoc($result)) 
{ 
    echo "<tr><td>".$row['a']."</td>";
    echo "<td>".$row['b']."</td>";
    echo "<td>".$row['c']."</td>";
    echo "<td>".$row['d']."</td></tr>";
}
echo "</table>";

出力は次のようになります。

Field name: a   Field name: b   Field name: c   Field name: d
1               2               3               0

以下のような表示にしたい:

Field name: a   Field name: b   Field name: c   
1               2               3               

field name: dが 0 であるため、 は表示されません。

どうやってやるの?あなたからいくつかの例をお願いできますか?

ありがとう。

4

4 に答える 4

0

試す

while ($row = mysql_fetch_assoc($result)) 
{ 
   echo "<tr>";
   if($row['a'] >0)    echo "<td>".$row['a']."</td>";  else echo"<td>-<td>";
   if($row['b'] >0)    echo "<td>".$row['b']."</td>";  else echo"<td>-<td>";
   if($row['c'] >0)    echo "<td>".$row['c']."</td>";  else echo"<td>-<td>";
   if($row['d'] >0)    echo "<td>".$row['d']."</td>";  else echo"<td>-<td>";
  echo "</tr>";
}
于 2012-12-02T16:11:51.467 に答える
0

あなたのコードは、適切な期待される結果のために修正されました。

echo "<table><tr>";
while ($property = mysql_fetch_field($result))
{
    if($property->name > '0')
    echo "<td>Field name: " . $property->name . "</td>";
}
echo "<tr/>";

while ($row = mysql_fetch_assoc($result)) 
{ 
    echo "<tr>";
    if($row['a'] > 0) echo "<td>".$row['a']."</td>";
    if($row['b'] > 0) echo "<td>".$row['b']."</td>";
    if($row['c'] > 0) echo "<td>".$row['c']."</td>";
    if($row['d'] > 0) echo "<td>".$row['d']."</td>";
    echo "</tr>";
}
echo "</table>";
于 2012-12-02T16:16:43.037 に答える
0
$results = array();
$disp_col_a = false;
$disp_col_b = false;
$disp_col_c = false;
$disp_col_d = false;

while ($row = mysql_fetch_assoc($result)) 
{
    if ($row['a'] > 0){
        $disp_col_a = true;
    }
    if ($row['b'] > 0){
        $disp_col_b = true;
    }
    if ($row['c'] > 0){
        $disp_col_b = true;
    }
    if ($row['b'] > 0){
        $disp_col_b = true;
    }
    $results[] = $row;
}

echo "<table><tr>";
if ($disp_col_a){
    echo "<td>Field name: a</td>";
}
if ($disp_col_b){
    echo "<td>Field name: b</td>";
}
if ($disp_col_c){
    echo "<td>Field name: c</td>";
}
if ($disp_col_d){
    echo "<td>Field name: d</td>";
}
echo "<tr/>";
foreach ($results as $results_row) {
{ 
    echo "<tr>";
    if ($disp_col_a){
        echo "<td>";
        if ($results_row['a'] > 0){
            echo $results_row['a'];
        }
        echo "</td>";
    }
    if ($disp_col_b){
        echo "<td>";
        if ($results_row['b'] > 0){
            echo $results_row['b'];
        }
        echo "</td>";
    }
    if ($disp_col_c){
        echo "<td>";
        if ($results_row['c'] > 0){
            echo $results_row['c'];
        }
        echo "</td>";
    }
    if ($disp_col_d){
        echo "<td>";
        if ($results_row['d'] > 0){
            echo $results_row['d'];
        }
        echo "</td>";
    }
    echo "</tr>";
}
echo "</table>";
于 2012-12-02T22:09:21.083 に答える
-1

うるさいわけではありませんが、一見しただけでは、mysql にここでの面倒な作業を任せた方が確かに理にかなっています。なぜ、異なる数の列を持つ HTML テーブルにいくつかの行を出力したいのでしょうか? 恒久的なメンテナンスの頭痛の種は別として、これは、視覚的な美学の観点から悪いデザインと見なされる人もいます. :)

同時に、「Good Enough Is」の概念も理解していますので、あまり文句は言いません。

于 2012-12-02T16:36:48.947 に答える