티스의 이야기

PHP-데이터베이스에서 선택 메뉴생성 본문

프로그래밍

PHP-데이터베이스에서 선택 메뉴생성

밍딩이 2016. 6. 10. 16:22

PHP-데이터베이스에서 선택 메뉴생성 요즘 PHP프로그래밍 책을 보고 있다.


챕터 209.


데이터베이스에서 선택 메뉴를 생성하고 싶을 때


<!DOCTYPE html>

<html lang="ko">

<head>

<meta charset="UTF-8">

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<title>데이터베이스에서 선택 메뉴를 생성하고 싶을 때</title>

</head>

<body>

<div>

<form method="post" action="database_to_selectmenu.php">

<?php

// 데이터베이스 설정 레시피 257을 불러옵니다 레시피 041.

require_once__DIR__ . '/../../../../conf/database_conf.php';

// h() 함수 레시피 218를 불러옵니다.

require_once '../../../../lib/h.php';


try {

// MySQL 데이터베이스에 접속합니다 레시피 257.

$db = new PDO($dsn, $dbUser, $dbPass);

$db -> setAttribute(PDO::ATTR_EMULATE_PREPARES, false);

$db -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


// SQL문을 준비합니다.

$sql = 'SELECT * FROM area ORDER BY id ASC';

$prepare = $db->prepare($sql);

// 쿼리를 실행합니다.

$prepare->execute ();

// 쿼리 결과의 경우 칼럼 이름을 키로 한 연관 배열에서 모든 행을 취득합니다 레시피 258.

$result = $prepare->fetchALL(PDO::FETCH_ASSOC);


echo '<select name="area">' . "\n";

// 실행 결과를 연관 배열에서 취득하고 foreach문으로 처리합니다.

foreach ($result as $row) {

echo ' <option value="' . h($row['id']) . '">' . h($row['area'])

. '</option>' . "\n";

}

echo '</select>' . "\n";

// 오류가 발생할 경우 PDOException 예외가 발생하므로 캐치합니다.

}catch (PDOException $e) {

echo '오류가 발생했습니다. 내용: ' . h($e->getMessage ());

}

if (isset($_POST['area'])){

$id = (int) $_POST['area'];

try{

// SQL문을 준비합니다.

$sql = 'SELECT * FROM area WHERE id = :id';

$prepare = $db->prepare($sql);

// SQL문의 플레이스 홀더에 값을 바인딩하고 쿼리를 실행합니다.

$prepare->bindValue(':id', $id, PDO::PARAM_INT);

$prepare->execute();

// 컬럼명을 키로 한 연관 배열에서 쿼리 결과를 1행만 취득합니다 레시피 259.

$row = $prepare->fetch(PDO::FETCH_ASSOC);


// 결과를 표시합니다.

if ($row !== false) {

echo '선택한 지역은: ' . h($row['area']);

}

} catch (PDOException $e) {

echo '오류가 발생했습니다. 내용: ' . h($e->getMessage ());

}

}

?>

<br>

<input type="submit" value="전송">

</form>

</div>

</body>

</html>



출처: 예제가 가득한 PHP프로그래밍



'프로그래밍' 카테고리의 다른 글

PHP-인증을 요구하고 싶은 페이지  (0) 2016.06.14
PHP-로그인 폼작성  (0) 2016.06.13
무료 Ajax 강의 배우기  (0) 2015.11.03
cmd 기본  (0) 2015.08.12
HTML 배우기 첫수업  (0) 2015.08.12
Comments