【PHP】 투고 종류에 따라 투고를 출력하는 기능
10848 단어 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_type
spl문장을 변경하여 얻은 투고 종류의 함수를 판별합니다.
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
Reference
이 문제에 관하여(【PHP】 투고 종류에 따라 투고를 출력하는 기능), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ryouya3948/items/340201565ae04531f464텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)