質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.00%

phpでデータベースのレコードを無限スクロール

受付中

回答 0

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 384
退会済みユーザー

退会済みユーザー

前提・実現したいこと

勝手な質問ですみませんが、phpでコメントの投稿一覧を無限スクロールする方法が分かりません。色々なサイトを観てみましたが、さっぱり分かりません。どんなソースコードにすればいいですか?

該当のソースコード

<?php
session_start();

$db_host = 'localhost';
$db_name = 'sns';
$db_user = 'root';
$db_pass = '';

// データベースへ接続する
$link = mysqli_connect( $db_host, $db_user, $db_pass, $db_name );
if ( $link !== false ) {

$tipes = "1";


$msg = '';
$err_msg = '';

if ( isset( $_POST['send'] ) === true ) {

$name = $_SESSION["NAME"];
$comment = $_POST['comment'];
$userid = $_SESSION["ID"];

date_default_timezone_set('Asia/Tokyo');

$time = date('Y-m-d H:i:s');
$tipe = "1";

if ( $name !== '' && $comment !== '' ) {




//生成する文字数
$length = 10;

//使用する文字
$char = '1234567890';

$charlen = mb_strlen($char);
$result = "";

for($i=1;$i<=$length;$i++){
  $index = mt_rand(0, $charlen - 1);
  $result .= mb_substr($char, $index, 1);
}

echo $result;


//書き込みオリジナルファイル読み込み
$files=file_get_contents('sample.php');

//'a'+乱数を生成してファイル名に
$fileName = "Reply/31".rand();

//書き込みオリジナルファイルから変更点を置き換える
$files=str_replace("===1===",$result,$files);
$files=str_replace("===2===",$name,$files);
$files=str_replace("===3===",$comment,$files);

//文字コードをUTFに変換
$files = mb_convert_encoding($files, "UTF-8","AUTO");

//ファイル名に拡張子を付ける
$fileName = $fileName. ".php";

//ファイル生成&書き込み
$handle = fopen( $fileName, 'w');

fwrite( $handle, $files);
fclose( $handle );

// メッセージ表示
print $fileName. "を生成しました。<br/>\n";



require('./user/filed/' . $_SESSION["ID"] . '.php');

$query = " INSERT INTO board ( "
. " user_icon , "
. " user_id , "
. " rinku , "
. " tipe , "
. " time , "
. " name , "
. " comment "
. " ) VALUES ( "
. "'" . mysqli_real_escape_string( $link, $name1 ) ."', "
. "'" . mysqli_real_escape_string( $link, $userid ) ."', "
. "'" . mysqli_real_escape_string( $link, $fileName ) ."', "
. "'" . mysqli_real_escape_string( $link, $tipes ) ."', "
. "'" . mysqli_real_escape_string( $link, $time ) ."', "
. "'" . mysqli_real_escape_string( $link, $name ) ."', "
. "'" . mysqli_real_escape_string( $link, $comment ) . "'"
." ) ";

$res = mysqli_query( $link, $query );

if ( $res !== false ) {
$msg = '書き込みに成功しました';
}else{
$err_msg = '書き込みに失敗しました';
}
}else{
$err_msg = '名前とコメントを記入してください';
}
}

    $query  = "SELECT
 *
 FROM
 `board`
 WHERE
   tipe = 1 and
   (
     user_id in (
        select to_id from follow where from_id = '" . $_SESSION["ID"] . "'
       )
     or user_id = '" . $_SESSION["ID"] . "'
   )";
    $res    = mysqli_query( $link,$query );
    $data = array();
    while( $row = mysqli_fetch_assoc( $res ) ) {
        array_push( $data, $row);
    }
    arsort( $data );

} else {
    echo "データベースの接続に失敗しました";
}

// データベースへの接続を閉じる
mysqli_close( $link );


#終了
$stmt = null;
$pdo = null;


?>


<html>
<head>

<script src="js.js"></script>

<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>書き込み欄</title>
<link rel="stylesheet" type="text/css" href="./css.css">
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
</head>
<body>


<?php
$foodlink = file_get_contents('./テンプレート/herder.php');
echo $foodlink;
?>

<div id="T1"></div><br><br><br>


<div style="padding:10px;border-radius:10px;background:#DBB8FF;">


        <h1>メイン画面</h1>
        <!-- ユーザーIDにHTMLタグが含まれても良いようにエスケープする -->
        <p>ようこそ<u><?php

        if (isset($_SESSION["NAME"])) {

         echo htmlspecialchars($_SESSION["NAME"], ENT_QUOTES); 

         }else{
         echo "ゲスト";

         }
         ?></u>さん</p>  <!-- ユーザー名をechoで表示 -->
<?php
// ログイン状態チェック
if (isset($_SESSION["NAME"])) {

$foodlink = file_get_contents('./テンプレート/user.php');
echo $foodlink;


$foodlink = file_get_contents('./user/' . $_SESSION["ID"] . 'a.txt');
echo $foodlink;



}

?>

<?php

if ( isset( $_POST['tuti'] ) === true ) {


$w = $_POST["tuti"];

if($w == 1){
// 「はい」の時の処理

}
}
?>

</div><br>

<div class="kakomi-box4">

<?php
// ログイン状態チェック
if (isset($_SESSION["NAME"])) {

$foodlink = file_get_contents('./テンプレート/post.php');
echo $foodlink;

}
?>
<!-- ここに、書き込まれたデータを表示する -->

<?php 

if ( $msg !== '' ) echo '<p>' . $msg . '</p>';
if ( $err_msg !== '' ) echo '<p style="color:#f00;">' . $err_msg . '</p>';
foreach( $data as $key => $val ){
echo '<fieldset style="background:#add6ff; padding:10px; border:none;"><a href="./users/' . $val['user_id'] . '.php"><img src="' .  $val['user_icon'] . '" alt="50" width="" height="50"></a><font size="6">' . $val['name'] . '</font><br>' . $val['comment'] . '<br><br><font size="2">' . $val['time'] . '</font>' . '<br><a href="' . $val['rinku'] . '" target=_blank">返信</a>' . '</fieldset><br>';
}


?>


</div>


</body>
</html>

補足情報(FW/ツールのバージョンなど)

回答に必要なさそうな情報は載せてませんが、どうか、回答宜しくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • m.ts10806

    2019/02/23 21:56 編集

    >回答に必要なさそうな情報は載せてませんが
    載せてくださいとしか言えません。「必要そうな」と検討がついているなら載せないデメリットのほうが大きいです。
    情報は多ければ多いほど的確な回答・迅速な解決につながります。
    特に「色々探した」「色々なサイトを見てみた」これが正しい情報なのか質問者さんの理解が間に合っているかを判断して、回答につなげるためには必須です。
    行先の情報を何も伝えずにタクシーは目的地には連れて行ってくれませんから。(しかもこのサイトはタクシーのように運賃を回答者に払うわけではありません。それだけ質問者さんが手抜きするとどこにもたどりつけません)

    キャンセル

  • m.ts10806

    2019/02/23 21:58

    それに「どんなソースコードにすればいいですか?」は質問ではなくほとんど作業依頼ですよね。
    それなりのサイトを見てさっぱりわからないと言っている人にソースコードを渡して理解がされるとは到底思えません。理解されない回答をしたいと思う人はいませんよ。

    キャンセル

  • FKM

    2019/02/23 21:59 編集

    無限スクロールという言い方より、データベースレコードの値が出た数の分だけテーブルやdivといった要素を作成するようにしたいってことでよろしいでしょうか?ソースを見たところ、決め打ちでしか記事入れられないようになっていますし。それならPHP初心者あるある的な質問ですから。

    キャンセル

  • 退会済みユーザー

    退会済みユーザー

    2019/02/24 09:49

    一応削除リクエストを行いました。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.00%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る