PHP로 데이터베이스 작업

14999 단어 phpMyadminPHP
 


테이블 중에서 선택한 직종을 표시합니다.



변수를 설정합니다.


    $job = '';//selectの中の値
    $host = '';//データベースのホスト名またはIPアドレス
    $username = '';//ユーザー名
    $passwd = '';//パスワード
    $dbname = '';//データベース名
    //データベースの情報を渡して接続する値を$linkに代入する
    $link = mysqli_connect($host, $username, $passwd, $dbname);

myspli_connect의 "()"내가 데이터베이스 접속에 필요한 정보이며, 이것을
전달하여 연결할 수 있습니다.
반환 값은 링크 ID이며 연결된 데이터베이스를 식별하는 ID입니다.
  • emp_id는 직원 번호
  • emp_name 이름
  • emp_table 는 table명
  •     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는 순서를 결정합니다.
  • ASC ... 오름차순
  • DESC ... 내림차순
  • //社員番号順に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>
    

    좋은 웹페이지 즐겨찾기