2010-11-03 51 views
0

跳棋板我一直在試圖讓MySQL處理板的數據,如位置和具有板在板PHP使得從MySQL

有值,如

告示牌上的黑色和紅色的碎片行8至1分 和 列A至H

於是我可以使用MySQL到板之間移動

問題: 如何轉換該陣列分成MySQL的,因此它可以具有板行,然後列數據,以行和列,這樣我可以顯示件,並使用這些值來移動,在板件

function displayboard(){ 




$Board = array 
    (
     array(0,0,0,0,0,0,0,0), 
     array(0,0,0,0,0,0,0,0), 
     array(0,0,0,0,0,0,0,0), 
     array(0,0,0,0,0,0,0,0), 
     array(0,0,0,0,0,0,0,0), 
     array(0,0,0,0,0,0,0,0), 
     array(0,0,0,0,0,0,0,0), 
     array(0,0,0,0,0,0,0,0), 
    ); 

     $row = 0; 
     print "<form>"; 
     print "<table border = 1>"; 
     while ($row < 8){ // Counts to 8. (from 0...7 = 8 times. 0 ... 8 = 9 times) 
      print "<tr>"; 
      $row++; 
      $col = 0; // reset column to 0 each time printing one row. 

      while ($col < 8){ 
      print "<td>"; 
      if($Board[$row][$col] == 0) 
      { 

       print "<input type=\"checkbox\" name=\"box[]\" value=\"$value\">"; 
       // Add \ before " otherwise it will treat as the end of the quote. 

      } 
      print "</td>"; 
      $col++; 

      } 

      print "</tr>"; 

     } 
     print "</table>"; 
     print "</form>"; 

} 
+5

對不起,請問是什麼問題? – 2010-11-03 15:02:22

+0

對不起如何轉換數組到MySQL,因此可以得到董事會行,然後列數據的行和列,這樣我可以顯示片,並使用這些值時,你的意思是二進制移動,在板件 – hgbso 2010-11-03 15:04:03

回答

0

這不是非常有效的給予的值,但是一種實現你想要的非常簡單的方法。也就是說,假設你正在詢問如何將用於檢查器的MySQL數據從MySQL存儲和檢索到PHP中。如果這不是你要求的,請澄清你的問題。

某處在MySQL中,你有一個表。我們稱這個表爲boards。無論您希望在此表中使用哪些其他列,都不要擔心,但請在其中留下一個字符串數據。然後使用JSON來編碼你的數組。

$yourboarddata=json_encode($Board); 
mysql_query("INSERT INTO boards (data) VALUES (\"" . mysql_real_escape_string($yourboarddata) . "\");"); 

當您準備好稍後檢索它時,可以使用json_decode

注意,這裏使用的數據,像樣的數目。您可以通過將二進制數據從您的主板中取出來節省大量存儲空間,但這對於您來說是一個簡單的方法。

+0

給值數據你的意思文件 – hgbso 2010-11-03 22:21:09

+0

如何轉換數組轉換成二進制數據 – hgbso 2010-11-03 23:38:39

+0

我只是想,在一個簡單的水平,你只需要每平方米兩位。你可以在一個字節中保存4個方塊。兩個比特的值可以是0表示無片,1表示紅片,2表示黑片,3表示未使用。整個板子16字節。事實上,由於棋盤上只有一半的棋子可以包含棋子,因此將其減半。所以,你最上面的第一行可能是二進制的01010101,它等於十六進制55,十進制85。將所有這些字節連接在一起,並將其扔在數據庫中。或者,您可以存儲碎片的位置。 – Brad 2010-11-04 13:28:51

0

你可以存儲你的董事會數據庫中的數據,但如果你想生成不同大小的電路板會發生什麼?你需要銘記這一點。一些類似於以下就足夠了,如果你能充分地維持它:

Table: boards 
    id  INT PRIMARY KEY 
    board_id INT 
    x   TINYINT 
    y   TINYINT 
    checked ENUM('0','1') DEFAULT '0' 

這樣的話,你可以查詢數據庫的單板,並使用它的xy價值觀,不管是檢查還是沒有建立它。

+0

誰玩跳棋板不同大小?這可能很有趣。 – Brad 2010-11-04 13:21:48