728x90
반응형
https://boltlessengineer.tistory.com/28?category=1104321
Oweb 서비스의 개요는 위 링크 참조
딱히 좋은 것 같지는 않지만 메인화면의 html를 분리했다.
//main.html
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8" />
</head>
<body>
<h1>단어장</h1>
<form action="index.php">
<input type="button" value="create" />
</form>
<h2>메뉴</h2>
<p>단어 추가</p>
<form action="insert.php" method="post">
<input type="text" placeholder="단어를 입력하세요" name="word" />
<input type="text" placeholder="뜻을 입력하세요" name="meaning" />
<input type="submit" value="추가" />
</form>
</body>
</html>
나중에 단어장 만들 때 필요한 create버튼을 미리 만들고
단어와 뜻은 text 형태로 추가하도록
//index.php
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8" />
</head>
<body>
<?php
include "main.html";
?>
</body>
</html>
다음은 mysql의 데이터를 가져오는 함수 (body 태그 안에서 사용)
//index.php에 추가
<?php
function show_table()
{
$conn = mysqli_connect("localhost", "root", *********, "Oweb_test");
$query = "SELECT word.id, word, meaning FROM word LEFT JOIN meaning ON word.id = meaning.id";
$result = mysqli_query($conn, $query);
echo "<br>";
echo "<table>";
echo "<td>id</td> <td>단어</td> <td>뜻</td> </tr>";
if (!$result)
{
echo mysqli_error($conn);
exit;
}
while($row = mysqli_fetch_assoc($result))
{
echo "<tr> <td>";
echo $row['id'];
echo "</td> <td>";
echo $row['word'];
echo "</td> <td>";
echo $row['meaning'];
echo "</td> </tr>";
}
echo "</table>";
}
?>
mysqli_connect로 mysql과 연결
select join를 이용해 두 테이블의 데이터를 불러옴
mysqli_fetch_assoc는 select한 테이블의 칼럼마다 쪼개주는 함수
mysql에 데이터를 추가하는 php파일
//insert.php
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="utf-8" />
</head>
<body>
<?php
$conn = mysqli_connect("localhost", "root", *********, "Oweb_test");
$word = $_POST["word"];
$meaning = $_POST["meaning"];
mysqli_query($conn, "INSERT INTO word (word) VALUES('$word')");
mysqli_query($conn, "INSERT INTO meaning (meaning) VALUES('$meaning')");
//id 정렬
mysqli_query($conn,"SET @C = 0");
mysqli_query($conn,"UPDATE word SET word.id = @C:=@C+1");
mysqli_query($conn,"SET @CNT = 0");
mysqli_query($conn,"UPDATE meaning SET meaning.id = @CNT:=@CNT+1");
header("location:index.php");
?>
</body>
</html>
insert문으로 main.html에서 받아온 단어와 뜻을 각가 테이블에 추가
id가 달라질 수 있으니 1,2,3...으로 되도록 정렬
표의 테두리를 위한 코드 (index.php의 head태그 안에 추가)
<style>
table{
border: 1px solid black;
border-collapse: collapse;
}
td{
border: 1px solid black;
}
</style>
최종 과정과는 다르지만 추가했을 때 단어와 뜻이 같은 id로 들어가니까 아직은 큰 상관 없다.
단어와 뜻을 입력하고 추가를 누르면 아래 표에 id와 함께 추가된다.
'중단된 프로젝트 > Oweb' 카테고리의 다른 글
[Oweb] php로 mysql 데이터 선택삭제하기 (0) | 2020.04.13 |
---|---|
[Oweb] 데이터베이스와 테이블 생성 (0) | 2020.04.13 |