iT邦幫忙

0

<解決>如何將資料庫裡的RGB值,呈現實際顏色到DIV中

目前資料庫中有RGB值
https://ithelp.ithome.com.tw/upload/images/20210614/201339150l35UakdJg.png
想問要用何種方式將實際顏色呈現到DIV中
(此圖示用ppt做的示意圖)
https://ithelp.ithome.com.tw/upload/images/20210614/20133915DeA8g6KCOw.png
不知道要打甚麼關鍵字,也查不到相關的範例

麻煩高手們幫幫忙,
小女子會心存感激的!!謝謝

之前有提問過相關問題
有熱心的高手提供此方式
https://ithelp.ithome.com.tw/articles/10256164
但是牽扯到要將資料從phpadmin GET回來
所以在此又發問了一次相關問題...
希望有相關詳細範例可以參考研讀 謝謝

淺水員 iT邦大師 6 級 ‧ 2021-06-15 15:14:13 檢舉
使用 PDO 跟資料庫溝通
https://ithelp.ithome.com.tw/articles/10183166
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
海綿寶寶
iT邦大神 1 級 ‧ 2021-07-24 22:31:17
最佳解答

https://ithelp.ithome.com.tw/upload/images/20210724/20001787806xJz04b3.png
https://ithelp.ithome.com.tw/upload/images/20210724/200017872qlgaqXvnH.png

寫最簡短的 php 如下

<HTML>
<?php

$link = mysqli_connect($DB_HOST, $DB_USER, $DB_PASSWORD, $DB_NAME);
if (!$link) {
    die("Connection failed: " . mysqli_connect_error());
}

$sql = "SELECT * FROM color_choose_rgb;";
$result = mysqli_query($link, $sql);
echo "<TABLE border=1 cellspacing=0 cellpadding=0>\r\n";
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {	
	echo "<TR><TD style='background-color:rgb({$row['R']},{$row['G']},{$row['B']})'>";
	echo "R={$row['R']},G={$row['G']},B={$row['B']}";
	echo "</TD></TR>\r\n";
}
echo "</TABLE>\r\n";
?>
</HTML>
看更多先前的回應...收起先前的回應...
0805cyc iT邦新手 4 級 ‧ 2021-07-25 13:40:24 檢舉

海棉寶寶大師您好~
今早我已嘗試出來了
abc.php相關內容如下

<?php
      require_once("../connMysql.php");

      //執行 SQL 命令,新增此帳號
      $sql = "SELECT R, G, B FROM color_choose_rgb  limit 5,1";
      $result = $db_link->query($sql);
      $rgbcolor="";

      if ($result->num_rows > 0) {
          // output data of each row
          while($row = $result->fetch_assoc()) {
              $rgbcolor1=$row["R"].",".$row["G"].",".$row["B"];
            }
          } else {
              echo "0 results";
          }
      
      //關閉資料連接  
      $db_link->close();
      //echo "<script>alert('$rgbcolor')</script>";
?>
<script>
function rgbToHex(r, g, b) {
  return  ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1) ;
}

var b=rgbToHex(<?php echo $rgbcolor1;?>)


const colors = [
{
  color: '49cc6c' },

{
  color: '173A2F' },

{
  color: '153944' },

{
  color: b },

{
  color: '438AAC' }];
</script>

顏色有成功呈現在div中了
但是想再請問一下,因為我要將最新5筆值分別存成$rgbcolor1~5
請問這樣是要執行5次sql query嗎??><

不是

我提供的程式已經是「1次sql query讀出4筆RGB值」的範例了

0805cyc iT邦新手 4 級 ‧ 2021-07-25 16:24:25 檢舉

大師您好~很感謝您的建議!!
除了您的範例我也多加了本身的需求用陣列去存取讀出來的資料
結果已有呈現了 謝謝您

0
小魚
iT邦大師 1 級 ‧ 2021-06-14 20:50:17

1.轉換成16進位
2.顏色通常顯示像這樣 #ffffff
(兩個數字一組,分別是RGB)

然後可能要研究一下css

1
japhenchen
iT邦超人 1 級 ‧ 2021-06-15 07:40:47

phpmyadmin不是資料庫,只是眾多方便管理的界面工具其中之一,你的對象要嘛是mySQL或mariaDB,anyway,你的頁面是php的話,就把RGB值代入HTML的css裡,如

<div style="display:inline-block;width:10px;height:10px;background-color:rgb(136,065,064);"></div>

(代入HTML不用文字轉數字)

我要發表回答

立即登入回答