PHP从mysql制作跳棋板

时间:2010-11-03 15:00:44

标签: php mysql

我一直试图让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>";

}

2 个答案:

答案 0 :(得分:0)

这不是很有效,但是实现你想要的东西是一种非常简单的方法。也就是说,假设您正在询问如何将MySQL中的小数组存储和检索到PHP中以用于检查程序。如果这不是您要求的,请澄清您的问题。

在MySQL的某个地方,你有一张桌子。我们称这个表为boards。无论你想在这张表中使用哪些其他列,都没有大问题,但请留下一个字符串数据。然后使用JSON对数组进行编码。

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

如果您准备稍后检索它,可以使用json_decode

请注意,这会使用相当数量的数据。您可以通过从板上制作二进制数据来节省大量存储空间,但这是一种简单的方法。

答案 1 :(得分:0)

您可以将您的电路板数据存储在数据库中,但如果您想生成不同大小的电路板会发生什么?你需要记住这一点。如果你可以充分维护它,那么类似于下面的东西就足够了:

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

这样,您可以在数据库中查询单个电路板,并使用xy值构建它,以及是否已选中。