こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

配列表示の方法

ちょっと長いですが・・・このサイトを参考に、カンマ区切りのデータをテーブルデザインで表示したいのですが、うまくいきません。
参考サイト:
http://www.sakura-pc.jp/php/page.html


■$arrayにカンマデータを代入して表示しようと思ったコード
$data_file = "test.txt";
$array = file($data_file);
for($i=0; $i<count($array); $i++){
list($data1,$data2,$data3,$data4,$data5) = split(",", $array[$i]);
}





以下参考ソース
<?php
header("Content-type: text/html; charset=shift_jis");
$thisphp="page.php";
$page_line_num=5;#1つのページに表示させたい件数
if(!$page_num=$_GET["page"]){$page_num=1;}#最初は1ページ目とする

///////// この部分がわかりません。カンマデータを$arrayに代入してHTMLでテーブル表示する方法/////////////////////////////////
$array=array('1行目','2行目','3行目','4行目','5行目','6行目','7行目','8行目','9行目','10行目',
'11行目','12行目','13行目','14行目','15行目','16行目','17行目','18行目','19行目','20行目',
'21行目','22行目','23行目','24行目'
);
//////////////////////////////////////////////////////////////

$page_array=array_slice($array,($page_num-1)*$page_line_num,$page_line_num);#表示する分だけ別の配列に格納する 配列は0から数えるので処理上は1ページ目は0ページ目とする

print_r($page_array);#現在のページで表示される中身を確認

$next_page=$page_num+1;#次のページ
$back_page=$page_num-1;#前のページ

if($back_page >= 1){$back_str='<a href="'.$thisphp.'?page='.$back_page.'">前へ</a>';}#現在より前のページが存在すれば戻るリンクを作る
else{$back_str='<span style="color:gray">前へ</span>';}#存在しなければグレイ色で薄く表示
if(count($array) > ($next_page-1)*$page_line_num){$next_str='<a href="'.$thisphp.'?page='.$next_page.'">次へ</a>';}#現在より後のページが存在すれば進むリンクを作る
else{$next_str='<span style="color:gray">次へ</span>';}

$all_page_num=count($array) / ($page_line_num-1);#全部のページ数を計算

for($i=1;$i<$all_page_num;$i++){#存在するページ番号を生成
if($i != $page_num){$page_str.='[<a href="'.$thisphp.'?page='.$i.'">'.$i.'</a>]';}
else{$page_str.='[<span style="color:gray">'.$i.'</span>]';}
}

print '<p>'.$back_str.' '.$page_str.' '.$next_str.'</p>';#ページを切り替えるリンクを表示する

?>

投稿日時 - 2009-10-18 09:32:09

QNo.5376016

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

丸投げは良くないと思うのと、参考にされているサンプルソースがあまりにも稚拙だと思うのですが、敢えて直さず、そのまま書き足すと、以下のような感じでしょうか?
(貴方が求めている結果が今一分かりにくいかな…)

page.php
<?
header("Content-type: text/html; charset=shift_jis");
$thisphp="page.php";
$page_line_num=5;
if(!$page_num=$_GET["page"]){$page_num=1;}

$data_file = "test.txt";
$array = file($data_file);
$page_array=array_slice($array,($page_num-1)*$page_line_num,$page_line_num);
echo "<table border=1>\n";
for($i=0; $i<count($page_array); $i++){
list($data1,$data2,$data3,$data4,$data5) = split(",", $page_array[$i]);
echo "<tr>\n";
echo "<td>$data1</td><td>$data2</td><td>$data3</td><td>$data4</td><td>$data5</td>\n";
echo "</tr>\n";
}
echo "</table>\n";

$next_page=$page_num+1;
$back_page=$page_num-1;
if($back_page >= 1){$back_str='<a href="'.$thisphp.'?page='.$back_page.'">前へ</a>';}
else{$back_str='<span style="color:gray">前へ</span>';}
if(count($array) > ($next_page-1)*$page_line_num){$next_str='<a href="'.$thisphp.'?page='.$next_page.'">次へ</a>';}
else{$next_str='<span style="color:gray">次へ</span>';}

$all_page_num=count($array) / ($page_line_num-1);

for($i=1;$i<$all_page_num;$i++){
if($i != $page_num){$page_str.='[<a href="'.$thisphp.'?page='.$i.'">'.$i.'</a>]';}
else{$page_str.='[<span style="color:gray">'.$i.'</span>]';}
}

print '<p>'.$back_str.' '.$page_str.' '.$next_str.'</p>';

?>

投稿日時 - 2009-10-18 22:51:15

あなたにオススメの質問