前提・実現したいこと
初投稿です。phpでsnsを作ることを目指して勉強していますが、フォローしたユーザーの投稿だけ表示することを実現したいのですが、ソースコードが分かりません。どうすればいいですか?
ちなみに登録制です。
ちなみに、フォローする時のソースコードは知っています。
該当のソースコード
PHP
1<?php 2session_start(); 3 4 5 6$db_host = 'localhost'; 7$db_name = 'sns'; 8$db_user = 'ユーザー名'; 9$db_pass = 'パスワード'; 10 11// データベースへ接続する 12$link = mysqli_connect( $db_host, $db_user, $db_pass, $db_name ); 13if ( $link !== false ) { 14 15 16 17$tipes = "1"; 18 19 20 21$msg = ''; 22$err_msg = ''; 23 24if ( isset( $_POST['send'] ) === true ) { 25 26$name = $_SESSION["NAME"]; 27$comment = $_POST['comment']; 28$userid = $_SESSION["ID"]; 29 30date_default_timezone_set('Asia/Tokyo'); 31 32$time = date('Y-m-d H:i:s'); 33$tipe = "1"; 34 35if ( $name !== '' && $comment !== '' ) { 36 37 38 39 40//生成する文字数 41$length = 5; 42 43//使用する文字 44$char = '1234567890'; 45 46$charlen = mb_strlen($char); 47$result = ""; 48 49for($i=1;$i<=$length;$i++){ 50 $index = mt_rand(0, $charlen - 1); 51 $result .= mb_substr($char, $index, 1); 52} 53 54echo $result; 55 56 57 58 59//書き込みオリジナルファイル読み込み 60$files=file_get_contents('sample.php'); 61 62//'a'+乱数を生成してファイル名に 63$fileName = "Reply/31".rand(); 64 65//書き込みオリジナルファイルから変更点を置き換える 66$files=str_replace("===1===",$result,$files); 67$files=str_replace("===2===",$name,$files); 68$files=str_replace("===3===",$comment,$files); 69 70//文字コードをUTFに変換 71$files = mb_convert_encoding($files, "UTF-8","AUTO"); 72 73//ファイル名に拡張子を付ける 74$fileName = $fileName. ".php"; 75 76//ファイル生成&書き込み 77$handle = fopen( $fileName, 'w'); 78 79fwrite( $handle, $files); 80fclose( $handle ); 81 82// メッセージ表示 83print $fileName. "を生成しました。<br/>\n"; 84 85 86 87$query = " INSERT INTO board ( " 88. " user_id , " 89. " link , " 90. " type , " 91. " time , " 92. " name , " 93. " comment " 94. " ) VALUES ( " 95. "'" . mysqli_real_escape_string( $link, $userid ) ."', " 96. "'" . mysqli_real_escape_string( $link, $fileName ) ."', " 97. "'" . mysqli_real_escape_string( $link, $tipes ) ."', " 98. "'" . mysqli_real_escape_string( $link, $time ) ."', " 99. "'" . mysqli_real_escape_string( $link, $name ) ."', " 100. "'" . mysqli_real_escape_string( $link, $comment ) . "'" 101." ) "; 102 103$res = mysqli_query( $link, $query ); 104 105if ( $res !== false ) { 106$msg = '書き込みに成功しました'; 107}else{ 108$err_msg = '書き込みに失敗しました'; 109} 110}else{ 111$err_msg = '名前とコメントを記入してください'; 112} 113} 114 115 116 $query = "SELECT id, name, comment, time, link, type, user_icon FROM board WHERE tipe=1"; 117 $res = mysqli_query( $link,$query ); 118 $data = array(); 119 while( $row = mysqli_fetch_assoc( $res ) ) { 120 array_push( $data, $row); 121 } 122 arsort( $data ); 123 124} else { 125 echo "データベースの接続に失敗しました"; 126} 127 128 129 130// データベースへの接続を閉じる 131mysqli_close( $link ); 132 133 134#終了 135$stmt = null; 136$pdo = null; 137 138 139?> 140 141 142<html> 143<head> 144 145<script src="js.js"></script> 146 147<meta name="viewport" content="width=device-width,initial-scale=1.0"> 148<title>書き込み欄</title> 149<link rel="stylesheet" type="text/css" href="./css.css"> 150<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 151</head> 152<body> 153 154 155 156 157 158 159 160<?php 161//ヘッダーのテンプレート 162$foodlink = file_get_contents('./テンプレート/herder.php'); 163echo $foodlink; 164?> 165 166<div id="T1"></div><br><br><br> 167 168 169<div style="padding:10px;border-radius:10px;background:#DBB8FF;"> 170 171 172 <h1>メイン画面</h1> 173 <!-- ユーザーIDにHTMLタグが含まれても良いようにエスケープする --> 174 <p>ようこそ<u><?php 175 176 if (isset($_SESSION["NAME"])) { 177 178 echo htmlspecialchars($_SESSION["NAME"], ENT_QUOTES); 179 180 }else{ 181 echo "ゲスト"; 182 183 } 184 ?></u>さん</p> <!-- ユーザー名をechoで表示 --> 185<?php 186// ログイン状態チェック 187if (isset($_SESSION["NAME"])) { 188 189$foodlink = file_get_contents('./テンプレート/user.php'); 190echo $foodlink; 191 192} 193?> 194</div><br> 195 196<div class="kakomi-box4"> 197 198<?php 199// ログイン状態チェック 200if (isset($_SESSION["NAME"])) { 201 202 203 204//投稿フォームテンプレート 205$foodlink = file_get_contents('./テンプレート/post.php'); 206echo $foodlink; 207 208} 209?> 210<!-- ここに、書き込まれたデータを表示する --> 211 212 213 214<?php 215 216 217 218if ( $msg !== '' ) echo '<p>' . $msg . '</p>'; 219if ( $err_msg !== '' ) echo '<p style="color:#f00;">' . $err_msg . '</p>'; 220foreach( $data as $key => $val ){ 221echo '<fieldset style="background:#add6ff; padding:10px; border:none;"><img src="' . $val['user_icon'] . '" alt="50" width="" height="50"><font size="6">' . $val['name'] . '</font><br>' . $val['comment'] . '<br><br><font size="2">' . $val['time'] . '</font>' . '<br><a href="' . $val['link'] . '" target=_blank">返信</a>' . '</fieldset><br>'; 222} 223?> 224 225</div> 226 227 228</body> 229</html>
mysql
1CREATE TABLE follow ( 2 `from_id` TEXT NULL, 3 `to_id` TEXT NULL 4) 5 6CREATE TABLE board ( 7 `id` INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, 8 `user_icon` VARCHAR(50) NULL DEFAULT NULL, 9 `user_id` VARCHAR(50) NULL DEFAULT NULL, 10 `name` VARCHAR(50) NULL DEFAULT NULL, 11 `comment` TEXT NULL, 12 `time` TEXT NULL, 13 `type` DECIMAL(10,0) NULL DEFAULT NULL, 14 `link` TEXT NULL 15) 16 17CREATE TABLE userdata ( 18 `id` INT(11) NOT NULL AUTO_INCREMENT, 19 `name` VARCHAR(20) NULL DEFAULT NULL, 20 `user_icon` VARCHAR(50) NULL DEFAULT NULL, 21 `password` VARCHAR(100) NULL DEFAULT NULL 22)





回答3件
あなたの回答
tips
プレビュー