【PHP】 투고 종류에 따라 투고를 출력하는 기능

10848 단어 PHP
PHP에 대해서는 학습 내용을 메모로 요약합니다.
투고 종류에 따라 투고를 출력하는 기능을 실시했기 때문에 기재한다.

유형별 게시물 보기


먼저 표시하고 싶은 페이지에 코드를 쓰세요.

<?php
$page_type = $_GET['type'];
//$_SESSION['staff_code']は現在ログインしているユーザーのIDを取得しています
print'<a href="staff_top.php?staff_code='.$_SESSION['staff_code'].'&type=main">自分の投稿</a>';
print'<a href="staff_top.php?staff_code='.$_SESSION['staff_code'].'&type=favorites">いいねした投稿</a>';

$current_user=get_user($_SESSION['staff_code']);

switch ($page_type) {
  case 'main':
    $posts = get_posts($current_user['code'],'my_post',0);
  break;

  case 'favorites':
    $posts = get_posts($current_user['code'],'favorite',0);
  break;
}

<?php foreach($posts as $post): ?>

    <?php print'<br />'; ?>
    <?php print ''.$post['name'].''; ?>

<?php endforeach ?>
링크 自分の投稿いいねした投稿 를 사용하여 현재 경로를 지정합니다.
그리고 & 이후 지정type, 투고에 따라 종류를 구분합니다.
경로의 type 값은 $page_type 에 전달됩니다.
패스하는 거예요?및 &에 대한 정보는 [PHP] 링크된?및 & 를 참조하십시오.

<?php
$page_type = $_GET['type'];
//$_SESSION['staff_code']は現在ログインしているユーザーのIDを取得しています
print'<a href="staff_top.php?staff_code='.$_SESSION['staff_code'].'&type=main">自分の投稿</a>';
print'<a href="staff_top.php?staff_code='.$_SESSION['staff_code'].'&type=favorites">いいねした投稿</a>';
type의 값은 $page_type에게 전달되기 때문에 모든 값은 $posts에게 전달되는 값을 분리한다.get_posts 함수에 대해서는 다른 처리이기 때문에 설명합니다.

get_posts 함수


조금 긴 함수이지만 하고 있는 일로서
받은 $page_typespl문장을 변경하여 얻은 투고 종류의 함수를 판별합니다.

function get_posts($page_id,$type){
  try {
    $dsn='mysql:dbname=shop;host=localhost;charset=utf8';
    $user='root';
    $password='';
    $dbh=new PDO($dsn,$user,$password);
    switch ($type) {
      case 'my_post':
      $sql = "SELECT mst_staff.code,mst_staff.name,mst_staff.password,mst_staff.delete_flg,mst_product.code,mst_product.name,mst_product.address,mst_product.time_start,mst_product.time_end,mst_product.gazou,mst_product.user_id
              FROM mst_staff INNER JOIN mst_product ON mst_staff.code = mst_product.user_id
              WHERE user_id = :id AND delete_flg = 0";
      break;

      case 'favorite':
      $sql = "SELECT mst_staff.code,mst_staff.name,mst_staff.password,mst_staff.delete_flg,mst_product.code,mst_product.name,mst_product.address,mst_product.time_start,mst_product.time_end,mst_product.gazou,mst_product.user_id
              FROM mst_product INNER JOIN favorite ON mst_product.code = favorite.post_id
              INNER JOIN mst_staff ON mst_staff.code = mst_product.user_id
              WHERE favorite.user_id = :id";
      break;

    }
    $stmt = $dbh->prepare($sql);
    $stmt->bindValue(':id', $page_id);
    $stmt->execute();
    return $stmt->fetchAll();
  } catch (\Exception $e) {
    error_log('エラー発生:' . $e->getMessage());
    set_flash('error',ERR_MSG1);
  }
}
get_posts関数의 매개변수$page_id는 현재 사용자 ID이고 $type$page_type의 값입니다.$page_type의 값에 따라 SQL 문장을 판별하고 해당 투고를 출력합니다.favorite책상은 투고할 때 いいねした人いいねした投稿를 연결한 책상이다.
상세한 상황은 여기서 설명하니 참고하세요.
[PHP] 좋은 기능 구현

게시물 유형별 게시물 보기


투고 종류에 따라 투고를 출력할 수 있기 때문에 실제로 나타난다.
처음에 기재된 코드의 다음 기술에 따라 투고를 표시할 수 있다.

<?php foreach($posts as $post): ?>

    <?php print'<br />'; ?>
    <?php print ''.$post['name'].''; ?>

<?php endforeach ?>
상기 처리는 $posts 그룹의 값만 검색합니다.
이렇게 하면 표시할 수 있다.

참조 URL

좋은 웹페이지 즐겨찾기