오목이나 바둑 기록판 같은거 db 저장 질문입니다.
본문
<div class="concave_content">
<?php
$sixCount = 6;
$lenCount = 19;
for ($i = 0; $i < $lenCount; $i++):
?>
<ul class="concave_row">
<?php for ($j = 0; $j < $sixCount; $j++): ?>
<?php
$sell_name = "sell_" . $i;
?>
<li class="concave_sell">
<p class="concave_text"></p>
</li>
<?php endfor; ?>
</ul>
<?php endfor; ?>
</div>
이런 느낌으로 반복되는 코드이고
다 반복되면 대충
<ul>
<li>
<p class="black">검은돌</p> or <p class="white">하얀돌</p>
</li>
</ul>
이런거 110개 정도 만들어지는데
내가 게임했던 판 정보를 저장하고
불러오면 내가 진행했던 게임 판이 그대로 불러와지는 기능?을
db에 어떻게 담을지 고민입니다..
당장 떠오르는 방법은
그냥 에디터 쓰는거마냥 html 태그 전부 다 집어넣는 방법인데
말고 다른게 있다면 어떤게 있는지 뭐가 정석인지 궁금합니다..
비전공 퍼블리셔에서 사내 1인 신입개발자로 취업된 상태라서
조언 구할만한 사람도 전직장,학원동기 퍼블리셔분들밖에없어요 ㅠㅠ
개발자님들 도움! 을 주시면 정말 감사하겠습니다..
답변 3
검은돌 흰돌을 어떻게 배열하는지, black, white 클래스를 어떻게 부여하는지 상세 설명이 없으니
모르겠으나 black, white 클래스가 부여된 곳이 돌이 있는 곳이라면
간단합니다
좌표를 나타내는 순서쌍을 저장하면 됩니다
<input name='black' id='black' value=''>
<input name='white' id='white' value=''>
$class="$i,$j ";
<p class="<php echo $class;?>black">검은돌
=============================
black_val =deli = '';
$(".black").each(function(){
black_val +=deli+$(this).prop("className").replace(/black/,''); deli ='/';
});
white_val =deli = '';
$(".white").each(function(){
white_val +=deli+$(this).prop("className").replace(/white/,''); deli ='/';
});
$("#black").val( black_val);
$("#white").val( white_val);
form에서 위의 input을 전송하여 디비 테이블의 black 필드, white필드에 저장하면 됩니다
저장된 값을 사용할때는 구분자로 분리하여 순서쌍을 $i, $j와 비교하면 원래 위치를 알수 있겠죠
질문 내용만으로는 구체적인 답변을 드리기는 어렵지만 대략적으로 다음과 같이 해 볼 수는 있을것 같습니다.
참고하셔서 원하시는 구조로 구현하시면 될 것 같습니다.
<?php
// 데이터베이스 연결 설정
$servername = "localhost";
$username = "사용자명";
$password = "비밀번호";
$dbname = "데이터베이스명";
$conn = new mysqli($servername, $username, $password, $dbname);
// 데이터베이스 연결 확인
if ($conn->connect_error) {
die("데이터베이스 연결 실패: " . $conn->connect_error);
}
// 게임 상태 저장
function saveGameBoardState($boardState) {
global $conn;
// $boardState를 데이터베이스에 저장하는 쿼리 작성 및 실행
// 예를 들어, 게임 보드의 상태를 저장하는 쿼리를 실행
// $query = "INSERT INTO game_board (board_state) VALUES ('$boardState')";
// $conn->query($query);
}
// 게임 상태 불러오기
function loadGameBoardState() {
global $conn;
// 데이터베이스에서 게임 보드의 상태를 불러오는 쿼리 실행
// 예를 들어, $query = "SELECT board_state FROM game_board ORDER BY timestamp DESC LIMIT 1";
// $result = $conn->query($query);
// $row = $result->fetch_assoc();
// $boardState = $row['board_state'];
// return $boardState;
}
// 게임 보드 상태 저장
$gameBoardState = "게임 보드 상태 정보"; // 이 정보는 실제 게임 보드 상태로 대체되어야 합니다.
saveGameBoardState($gameBoardState);
// 게임 보드 상태 불러오기
$loadedGameBoardState = loadGameBoardState();
// $loadedGameBoardState를 사용하여 게임 보드를 재구성하십시오.
// 데이터베이스 연결 닫기
$conn->close();
?>
게임 보드의 구체적인 상태를 저장하려면 데이터베이스 테이블 및 필드를 적절하게 설계해야 하고, 또한 게임 보드 상태를 저장하고 불러올 때 필요한 SQL 쿼리를 작성해야 할 것으로 생각합니다.
!-->셀 아이디를 넣어두고
db에 게임아이디,검은돌, 흰돌 칼럼 만든다음에 색별로 셀 아이디 배열로 넣고
아이디로 불러와서 쭉 넣어주는 방법이 있겠네요