回答編集履歴

3 回答:表現修正

Y.H.

Y.H. score 7143

2017/02/08 15:37  投稿

細かいところは抜きにして回答します。
細かいところは抜きにして$_SESSION変数の利用(保存と取り出し)についてのみ回答します。
まず、```$_SESSION = $_POST;```なぜこんなことしてるんでしょうか?```$_SESSION```を```$_POST```で上書きしてしまってはだめです。(アクセスがあるたびにセッション変数```$_SESSION```が```$_POST```で上書きされるのでセッション変数の意味をなさなくなります)
1ページ目のphpで```$_SESSION['ROWS'] = $rows;```としセッションに保存しましょう。
```PHP
// ・・・略・・・
//こんなことしちゃだめです。
//$_SESSION = $_POST;
// ・・・略・・・
if($statement->execute()){
   $row_count = $statement->rowCount();
   while($row = $statement->fetch()){
       $rows[] = $row;}
   // $rowsをセッション'ROWS'に保存
   $_SESSION['ROWS'] = $rows;
}else{
   $errors['error'] = "検索失敗しました。";
}
// ・・・略・・・
```
2ページ目のPHPで```$rows=$_SESSION['ROWS'];```とし、セッションから取り出しましょう。
```PHP
// ・・・略・・・
//こんなことしちゃだめです。
//$_SESSION = $_POST;
// セッション'ROWS'に保存したものを$rowsに取り出す。
$rows=$_SESSION['ROWS'];
// ・・・略・・・
```
2 回答追記

Y.H.

Y.H. score 7143

2017/02/08 14:45  投稿

細かいところは抜きにして回答します。
まず、```$_SESSION = $_POST;```なぜこんなことしてるんでしょうか?```$_SESSION```を```$_POST```で上書きしてしまってはだめです。
まず、```$_SESSION = $_POST;```なぜこんなことしてるんでしょうか?```$_SESSION```を```$_POST```で上書きしてしまってはだめです。(アクセスがあるたびにセッション変数```$_SESSION```が```$_POST```で上書きされるのでセッション変数の意味をなさなくなります)
1ページ目のphpで```$_SESSION['ROWS'] = $rows;```としセッションに保存しましょう。
```PHP
// ・・・略・・・
//こんなことしちゃだめです。
//$_SESSION = $_POST;
// ・・・略・・・
if($statement->execute()){
   $row_count = $statement->rowCount();
   while($row = $statement->fetch()){
       $rows[] = $row;}
   // $rowsをセッション'ROWS'に保存
   $_SESSION['ROWS'] = $rows;
}else{
   $errors['error'] = "検索失敗しました。";
}
// ・・・略・・・
```
2ページ目のPHPで```$rows=$_SESSION['ROWS'];```とし、セッションから取り出しましょう。
```PHP
// ・・・略・・・
//こんなことしちゃだめです。
//$_SESSION = $_POST;
// セッション'ROWS'に保存したものを$rowsに取り出す。
$rows=$_SESSION['ROWS'];
// ・・・略・・・
```
1 回答修正:コードのコメント追記

Y.H.

Y.H. score 7143

2017/02/08 14:29  投稿

細かいところは抜きにして回答します。
まず、```$_SESSION = $_POST;```なぜこんなことしてるんでしょうか?```$_SESSION```を```$_POST```で上書きしてしまってはだめです。
1ページ目のphpで```$_SESSION['ROWS'] = $rows;```としセッションに保存しましょう。
```PHP
// ・・・略・・・
//こんなことしちゃだめです。
//$_SESSION = $_POST;
// ・・・略・・・
if($statement->execute()){
   $row_count = $statement->rowCount();
   while($row = $statement->fetch()){
       $rows[] = $row;}
   // $rowsをセッションに保存
   // $rowsをセッション'ROWS'に保存
   $_SESSION['ROWS'] = $rows;
}else{
   $errors['error'] = "検索失敗しました。";
}
// ・・・略・・・
```
2ページ目のPHPで```$rows=$_SESSION['ROWS'];```とし、セッションから取り出しましょう。
```PHP
// ・・・略・・・
//こんなことしちゃだめです。
//$_SESSION = $_POST;
 
// セッション'ROWS'に保存したものを$rowsに取り出す。  
$rows=$_SESSION['ROWS'];
// ・・・略・・・
```

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る