PHP로 데이터베이스 작업
14999 단어 phpMyadminPHP
테이블 중에서 선택한 직종을 표시합니다.
변수를 설정합니다.
$job = '';//selectの中の値
$host = '';//データベースのホスト名またはIPアドレス
$username = '';//ユーザー名
$passwd = '';//パスワード
$dbname = '';//データベース名
//データベースの情報を渡して接続する値を$linkに代入する
$link = mysqli_connect($host, $username, $passwd, $dbname);
myspli_connect의 "()"내가 데이터베이스 접속에 필요한 정보이며, 이것을
전달하여 연결할 수 있습니다.
반환 값은 링크 ID이며 연결된 데이터베이스를 식별하는 ID입니다.
if($link) {
//文字化け防止
mysqli_set_charset($link, 'utf8');
//最初か全部選択を選んだ時
if($job === '' || $job === '全部選択') {
//実行する内容を$queryに代入する
$query = 'SELECT emp_id, emp_name, job, age FROM emp_table
ORDER BY emp_id';
//他の職種を選んだ時
} else {
//実行する内容を$queryに代入する
$query = 'SELECT emp_id, emp_name, job, age FROM emp_table
WHERE job = "'.$job.'" ORDER BY emp_id';
}
//社員番号順にtableから3つのカラムを取得する
$query = 'SELECT emp_id, emp_name, job, age FROM emp_table
ORDER BY emp_id ASC';
ORDER BY는 순서를 결정합니다.
//社員番号順にtableから3つのカラムの中から選んだ職種を取得
$query = 'SELECT emp_id, emp_name, job, age FROM emp_table
WHERE job = "'.$job.'" ORDER BY emp_id';
WHERE 조건을 결정합니다.
변수는 문자열 안에서는 그대로 사용할 수 없기 때문에, 이러한 기술이 되고 있습니다.
덧붙여서 이쪽이 알기 쉽네요.
$query = "SELECT emp_id, emp_name, job, age FROM emp_table
WHERE job = '$job' ORDER BY emp_id";
쿼리 실행
$result = mysqli_query($link, $query);
//1行ずつ配列を取得する
while($row = mysqli_fetch_array($result)) {
//取得したデータを配列にする
$goods_data[] = $row;
}
mysqli_query()는 SELECT이면 선택된 데이터가 반환된다.
UPDATE, DELETE이면 true, false를 반환합니다.
mysqli_fetch_array() 는, 성공하면 행의 배열을, 행이 없어지면 null,
실패하면 false를 반환합니다.
mysqli_free_result($result);
mysqli_close($link);
mysqli_free_result()는 저장된 메모리를 해제합니다.
mysqli_query()로 취득한 데이터를 이용한 경우 곧바로 개방합시다.
mysqli_close()는 데이터베이스와의 연결을 끊습니다.
모든 코드
<?php
$job = '';
$host = '';
$username = '';
$passwd = '';
$dbname = '';
//データベースの情報を渡して接続する値を$linkに代入する
$link = mysqli_connect($host, $username, $passwd, $dbname);
if(isset($_GET['job'])=== true) {
$job = $_GET['job'];
}
if($link) {
//文字化け防止
mysqli_set_charset($link, 'utf8');
if($job === '' || $job === '全部選択') {
$query = 'SELECT emp_id, emp_name, job, age FROM emp_table
ORDER BY emp_id';
} else {
$query = "SELECT emp_id, emp_name, job, age FROM emp_table
WHERE job = '$job' ORDER BY emp_id";
}
//クエリを実行
$result = mysqli_query($link, $query);
//1行ずつ配列を取得する
while($row = mysqli_fetch_array($result)) {
$goods_data[] = $row;
// var_dump($row);
}
mysqli_free_result($result);
mysqli_close($link);
}
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>サンプル</title>
<style type="text/css">
table, td, th {
border: solid black 1px;
}
table {
width: 200px;
}
</style>
</head>
<body>
<p>表示する職種を選択してください。</p>
<form>
<select name="job">
<option>全部選択</option>
<option>manager</option>
<option>analyst</option>
<option>clerk</option>
</select>
<input type="submit" value="表示">
</form>
<table>
<tr>
<th>社員番号</th>
<th>名前</th>
<th>職種</th>
<th>年齢</th>
</tr>
<?php
foreach ($goods_data as $value) {
?>
<tr>
<td><?php print htmlspecialchars($value['emp_id'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php print htmlspecialchars($value['emp_name'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php print htmlspecialchars($value['job'], ENT_QUOTES, 'UTF-8'); ?></td>
<td><?php print htmlspecialchars($value['age'], ENT_QUOTES, 'UTF-8'); ?></td>
</tr>
<?php
}
?>
</table>
</body>
</html>
Reference
이 문제에 관하여(PHP로 데이터베이스 작업), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/poconyan/items/c3543c5348882bfef3a3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)