0

if-statement を使用して<td>-s 色を変更しようとしています。

基本的に、データベースから情報を取得するための簡単なクエリがあります。さらに、タスクが達成されたかどうかなどの情報を保持する列があります。情報を取得すると、すべての情報が取得されますが、完了したタスクは緑色で、他のタスクは色なしにする必要があります。

答えを探しましたが、満足のいくものは見つかりませんでした。

例えば:


$qry = mysql_query("select * from table");
$recs = array();
while($row = mysql_fetch_array($qry))
$recs[]=$row;
mysql_free_result($qry);

上記のコードにwhile文を追加しようとしましたが、混乱してうまくいきませんでした:(

ヒアドキュメントを使用して結果を印刷しています: How to give them color here?


<?php 
$last_id=0;
foreach($recs as $rec)
{   
    $html=<<<HTML
<tr>
<td><b>Номер</b></td>
<td>$rec[0]</td>
</tr>
<tr>
<td><b>Номер документа</b></td>
<td>$rec[1]</td>
</tr>
<tr>
<td><b>Дата регистрации</b></td>
<td>$rec[8]</td>
</tr>
<tr>
<td><b>От кого</b></td>
<td>$rec[2]</td>
</tr>
<tr>
<td><b>По</b></td>
<td>$rec[4]</td>
</tr>
<tr>
<td><b>Краткое содержание</b></td>
<td>$rec[3]</td>
</tr>
<tr>
<td><b>Исполнитель</b></td>
<td>$rec[5]</td>
</tr>
<tr>
<td><b>Срок исполнения</b></td>
<td>$rec[6]</td>
</tr>
<tr>
<td><b>Срок исполнения продлен до</b></td>
<td><b>$rec[10]</b></td>
</tr>
<tr>
<td><b>Прислан</b></td>
<td>$rec[9]</td>
</tr>
<tr>
<td><b>Примечание</b></td>
<td>$rec[7]</td>
</tr>
<tr>
<td bgcolor="#838B83">&nbsp;</td>
<td bgcolor="#838B83">&nbsp;</td>
</tr>
HTML;
    print $html;        
    if($rec[0]>$last_id)
        $last_id=$rec[0];
};
$new_id=$last_id+1;
?>

4

4 に答える 4

5

色ではなくクラスを使用するため、CSSで変更できます

<td<?php if($row['complete']) echo ' class="complete"'; ?>>data</td>
于 2012-08-16T10:42:05.427 に答える
1
<table>
    <tr>
        <td>column heading</td>
    </tr>
    <?php
    $qry=mysql_query("select * from table");
    while($row=mysql_fetch_array($qry)) {
        if($row['urcolumnn']==1)
        {
        echo "<tr bgcolor=green>";
        }
        else
        {
            echo "<tr>";
        }
        ?>

        <td>
            <?php echo $row['urcolumn']; ?>
        </td>
    </tr>
    <?php } ?>
</table>

これはコード例です。これがあなたを助けると思います。ここで、これを使用する<tr>色を指定したい場合は、このように背景色を指定します<td><td style="background-color:green;">

于 2012-08-16T10:51:34.443 に答える
0

IFステートメントを使用するのではなく、三項演算子を使用することをお勧めします。または、別の回避策を使用して配列を使用して色を定義することもできます。これは、各ステータス値のさまざまな色をグローバルに定義するのに役立ちます。以下の例をご覧ください。

$aryColor = array(
 'complete' => 'green',
 'incomplete' => "red",
 'pending' => 'orange'
 .....
);
//you can specify values for all of your status, or leave them blank for no color, the keys in the array are the possible values from your status field
foreach($recs as $rec) {
 echo '<tr bgcolor="'.$aryColor[$rec['status_field']].'">
 <td>'.$rec['title_field'].'</td>
 </tr>';
}

これがお役に立てば幸いです。HEREDOC用にこれを簡単に編集できます。

于 2012-08-16T11:37:49.777 に答える
0

最初に、列の値を変更してその構造を int に変更し、デフォルト値を「0」に設定する必要があります。タスクが完了したら、フィールド値を「1」に変更する必要があります。

今あなたのコードに来てください:

$qry = mysql_query("select * from table");
while($row = mysql_fetch_assoc($qry)){
    if($row['status']==1){
     echo "<td color="green">Data</td>"
    }
    else{
       echo "<td color="white">Data</td>";
    } 
 }

したがって、ステータス is==1 は完了を意味し、白は未完了を意味する緑色の行を取得できます。

于 2012-08-16T11:06:58.347 に答える