簡體   English   中英

while循環並回顯背景色

[英]while loop and echo background color

我需要遍歷while循環,並回顯屬於指定編號的背景色。 變量$ green正在工作,但是我真的不知道如何使其他工作。

我有一個可以在其中輸入數字的表單字段,該數字屬於特定的背景顏色,該顏色在數組中定義。

有人可以看到我如何完成while循環嗎?

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
//include('session.php');

// Selecting Database
include 'dbconfic.inc.php';
$green = array(0 => "#81c77d", 2 => "#81c77d", 3 => "#81c77d", 4 => "#81c77d", 7 => "#81c77d", 12 => "#81c77d", 15 => "#81c77d", 18 => "#81c77d", 19 => "#81c77d", 21 => "#81c77d", 22 => "#81c77d", 25 => "#81c77d", 26 => "#81c77d", 28 => "#81c77d", 29 => "#81c77d", 32 => "#81c77d", 35 => "#81c77d");
$darkgreen = array(0 => "#81e87c", 3 => "#81e87c", 12 => "#81e87c", 15 => "#81e87c", 26 => "#81e87c", 32 => "#81e87c", 35 => "#81e87c");
$white = array(6 => "#ffffff", 17 => "#ffffff", 34 => "#ffffff");
$red = array(5 => "#dfb07b", 8 => "#dfb07b", 10 => "#dfb07b", 11 => "#dfb07b", 13 => "#dfb07b", 16 => "#dfb07b", 23 => "#dfb07b", 24 => "#dfb07b", 27 => "#dfb07b", 30 => "#dfb07b", 33 => "#dfb07b", 36 => "#dfb07b");
$grey = array(1 =>"#ffffff", 9 => "#ffffff", 14 => "#ffffff", 20 => "#ffffff", 31 => "#ffffff");

    // '?' is placeholders for variabler
    $stmt = $mysqli->prepare("SELECT * FROM numbertable ORDER BY num_id DESC LIMIT 27;");

    // execute prepared statement 
    $stmt->execute();

    // Make variables ready    
    $number = null;    
    $n_id = null;

    /* bind result variabler */
    $stmt->bind_result($n_id, $number);

    /* fetch values for each row*/

     while ($stmt->fetch()) {
        $voi = ($number = $green? $green[$number] : $green[0]);


            echo "<li><div style='background-color: ".$voi."'>$number</div></li>";
     }

    // close statement                        
    $stmt->close();

    // close connection
    $mysqli->close();

?>

**更新(一個大陣列更好嗎?)**

$property=array(
    "green"     => array(0 => "#81c77d", 2 => "#81c77d", 3 => "#81c77d", 4 => "#81c77d", 7 => "#81c77d", 12 => "#81c77d", 15 => "#81c77d", 18 => "#81c77d", 19 => "#81c77d", 21 => "#81c77d", 22 => "#81c77d", 25 => "#81c77d", 26 => "#81c77d", 28 => "#81c77d", 29 => "#81c77d", 32 => "#81c77d", 35 => "#81c77d"),
    "darkgreen"         => array(0 => "#81e87c", 3 => "#81e87c", 12 => "#81e87c", 15 => "#81e87c", 26 => "#81e87c", 32 => "#81e87c", 35 => "#81e87c"),
    "white"     => array(6 => "#ffffff", 17 => "#ffffff", 34 => "#ffffff"),
    "red"     => array(5 => "#dfb07b", 8 => "#dfb07b", 10 => "#dfb07b", 11 => "#dfb07b", 13 => "#dfb07b", 16 => "#dfb07b", 23 => "#dfb07b", 24 => "#dfb07b", 27 => "#dfb07b", 30 => "#dfb07b", 33 => "#dfb07b", 36 => "#dfb07b"),
    "grey"     => array(1 => "#ffffff", 9 => "#ffffff", 14 => "#ffffff", 20 => "#ffffff", 31 => "#ffffff")
); 

您應該像下面那樣更改代碼,條件中不使用單個= 對於檢查兩個變量,應使用==檢查。

$number也是數組的索引, 不是數組的索引。

$voi = (isset($green[$number]) ? $green[$number] : $green[0]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM