助けを求めています
session_start();if(! isset($_SESSION['last'])) $_SESSION['last'] = 0;$last = $_SESSION['last'];$sql="select * from xym_pic limit $last,9";$res=mysql_query($sql,$conn);while ($row=mysql_fetch_assoc($res)){ $data[]=$row;}$_SESSION['last'] += count($data);echo json_encode( $data )
session_start();if(! isset($_SESSION['last'])) $_SESSION['last'] = 0;$last = $_SESSION['last'];$sql="select * from xym_pic limit $last,9";$res=mysql_query($sql,$conn);while ($row=mysql_fetch_assoc($res)){ $data[]=$row;}$_SESSION['last'] += count($data);echo json_encode( $data );
まだ小さな問題があります。つまり、データベースに 80 件以上のレコードがあり、毎回 9 回取り出しても、すべて取り出されてしまいます。ページを更新してもセッションが残っています。どうすれば解決できますか?ありがとうございます
session_start();if(! isset($_SESSION['last'])) $_SESSION['last'] = 0;$last = $_SESSION['last'];$sql="select * from xym_pic limit $last,9";$res=mysql_query($sql,$conn);while ($row=mysql_fetch_assoc($res)){ $data[]=$row;}$_SESSION['last'] += count($data);echo json_encode( $data );
ウォーターフォールフローはセッションに保存すべきではありませんね?リクエストパラメータでデータの先頭を判断するのはページングと同じはずです
取得できなかった場合は、もう一度最初から取得してください
取得できなかった場合は、もう一度最初から取得してください
取得できない場合は最初から取得してくださいもう一度
結果セットが空の場合はセッションを破棄すると判断しましたが、それでもデータを取得できません
結果セットが空の場合は、セッションを破棄しても、また無限ループになります
結果セットは空だと思うので、ページが更新されるまで結果は再度取得されません
解決方法
session_start();if(! isset($_SESSION['last'])) $_SESSION['last'] = 0;$last = $_SESSION['last']; $sql="select * from xym_pic limit $last,9";$res=mysql_query($sql,$conn);if(mysql_num_rows($res) ==0) { $last = $_SESSION['last'] = 0; $sql="select * from xym_pic limit $last,9"; $res=mysql_query($sql,$conn);}while ($row=mysql_fetch_assoc($res)){ $data[]=$row;}$_SESSION['last'] += count($data);echo json_encode( $data )
Get 取得できない場合は、もう一度最初から取得してください
さて、取得できないので、結果セットが空の場合は、ページを更新してもセッションを破棄すると判断しました。データを取得します
結果セットが空の場合、セッションを破棄させますが、破棄されてしまいます。これは無限ループです
結果セットは空だと思うので、ページが更新されるまで結果は取得できません。それからもう一度数えます
解決方法
このコードの最終的な結果セット json は JS ファイルに返され、js がページの位置を決定します 新しいコンテンツを常に読み込み、セッションを破棄しても、すぐにデータの取得を再開しますロードされているので!
これは頭が痛いです!
具体的に何がしたいのですか?
最新の80個のデータを少しずつ取得したいのですが、ページを更新して再度データを取得してしまうのがこのウォーターフォールフローです。
さて、このウォーターフォールフローの仕組みは、静的ページがjsを呼び出し、jsがページの現在位置を下から何ピクセル後に取得するというものですが、このphpコードでは問題ありません。 jsを取得する際にjsonが空であるかどうかを判断する必要がありますが空の場合は取得されないのでしょうか?
これで、js はスクロールされている限りコンテンツを取得し続けます。php の結果セットが空の場合、一度取得した後はデータが保持されます。
取得後、セッションからログアウトするか、$_SESSION を空に設定します
もちろん、JS 側でも返すデータがあるかどうかを確認する必要があります。ない場合は、それ以上のリクエストは送信されません
取得後、ログを記録します。セッションを終了するか、$_SESSION を空に設定します
もちろん、JS 側でもデータが返されるかどうかを確認する必要があります。そうでない場合は、リクエストは送信されません。ありがとうございます。 !