• 締切済み

PHPとCSVで簡易データベースなるものを作りたいのです

私はプログラミングなどに関しては全くの素人なのですが、 今回こちらのサイト様(http://affiliate.aki-f.com/prog/cat/cat9.html)を参考にして簡易データベースなるものを作ろうと思っています。 ですがやはり付け焼刃の知識ではどうにも先が見えなく困っています。 今回が初投稿なのですが何卒宜しくお願いいたします。 以下に各ソースと質問を書かせていただきます。 ------------------------CSVの中身------------------------ 商品カテゴリー,商品タイトル,値段,発売年,簡単な説明,おすすめ度 商品カテゴリー,商品タイトル,値段,発売年,簡単な説明,おすすめ度 商品カテゴリー,商品タイトル,値段,発売年,簡単な説明,おすすめ度 ~同じ用に数十件ほど~ 商品カテゴリー,商品タイトル,値段,発売年,簡単な説明,おすすめ度 ------------------------------------------------------------- 同じカテゴリー、発売年、おすすめ度などで絞込み表示するような形を想定しています。 ------------------------------INDEX.PHP------------------------ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head><meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"></head> <body> <table> <tbody> <?php $Data=file('list.csv'); for($i=1;$i<sizeof($Data);$i++){ $line=explode(",",$Data[$i]) ?> <tr> <td><a href="test.php?id=<?=$line[0]?>"><?=$line[0]?></a></td> <td><a href="test.php?id=<?=$line[1]?>"><?=$line[1]?></a></td> <td><a href="test.php?id=<?=$line[2]?>"><?=$line[2]?></a></td> <td><a href="test.php?id=<?=$line[3]?>"><?=$line[3]?></a></td> <td><a href="test.php?id=<?=$line[4]?>"><?=$line[4]?></a></td> <td><a href="test.php?id=<?=$line[5]?>"><?=$line[5]?></a></td> </tr> <?php } ?> </tbody></table></body></html> ---------------------------------------------------------------- index.phpでは全商品のリストが表示されます。 ---------------------------test.php----------------------------- <?php $id=$_GET['id'] ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head><meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"></head> <body> <table> <tbody> <?php $Data=file('list.csv'); for($i=0;$i<sizeof($Data);$i++){ $line=explode(",",$Data[$i]); if($line[/*質問1*/]==$id){ ?> <tr> <td><a href="test.php?id=<?=$line[0]?>"><?=$line[0]?></a></td> <td><a href="test.php?id=<?=$line[1]?>"><?=$line[1]?></a></td> <td><a href="test.php?id=<?=$line[2]?>"><?=$line[2]?></a></td> <td><a href="test.php?id=<?=$line[3]?>"><?=$line[3]?></a></td> <td><a href="test.php?id=<?=$line[4]?>"><?=$line[4]?></a></td> <td><a href="test.php?id=<?=$line[5]?>"><?=$line[5]?></a></td> </tr> <?php } } ?> </tbody></table></body></html> --------------------------------------------------------------- index.phpで選択された項目で絞り込んで表示するページです。 質問1 上記の、if($line[~]==$id)の、~の部分に例えば0と入っているなら商品カテゴリーを選択した時に同じカテゴリーで絞り込み表示するわけなのですが、これだけでは当然他の項目を選択しても何も表示されません。なので、~の部分に全ての$lineを巡回させるような命令を書ければ全項目での絞り込みに対応できるんじゃないかなと、素人ながらに思っているのですがどうでしょうか?またその方法、もしくは他の解決策をご教授願えますでしょうかm(_ _)m あと、index.phpとtest.phpを1つにまとめてしまえることはできるでしょうか?私としてはできるならそうしたいのです。が、うまくできませんでした。 どこか変なことを口走っているかも知れませんがご容赦ください。 宜しくお願いします。

  • PHP
  • 回答数5
  • ありがとう数7

みんなの回答

  • ka-kichi
  • ベストアンサー率59% (22/37)
回答No.5

検索用のリンクが <a href="test.php?id=<?=$line[0]?>"><?=$line[0]?></a> とのことですので、「どのフィールドのデータを送ったか」を識別するために、下記のようにGETを一つ増やしてはいかがでしょうか? <a href="test.php?field=**&id=<?=$line[0]?>"><?=$line[0]?></a> field=の後ろの**には各フィールドのキーワードを入れます。 こうすることで、 $_GET['field']と$_GET['id']で複数の値を受け取ることができるようになります。 print<<<EOFはヒアドキュメントです。 私も名前を忘れて使ってました。(^^ゞ 例えば、 print "ほげほげ"; print "ふがふが"; print "ぴよぴよ"; などと続けて書く場合、 print <<<EOF ほげほげ ふがふが ぴよぴよ EOF; とまとめて記述できます。 また、ダブルクォーテーションなどを¥でエスケープする必要がなくなるので便利です。

  • ka-kichi
  • ベストアンサー率59% (22/37)
回答No.4

> $line[0]が$idと一致しなければ$line[1]を調べる > それも一致しなければ次・・・次・・・と動いてくれれば 例えば、 test.php?id=10 でアクセスした際、カテゴリーを探して、なければタイトルを探して、なければ値段を探して・・・ ということでしょうか? そもそも、違うフィールドを同じキーで検索することが特殊なので、「bang2000」さんの意図していることがわかりませんが…(^^ゞとりあえず下記ソースでできると思います。(未確認) for ($j=0;$j<[フィールド数];$j++) { for ($i=0;$i<sizeof($Data);$i++) { $line=explode(",",$Data[$j]); if ($line[$i] == $id) { //処理内容 } } } > index.phpとtest.phpはやはりまとめられるならまとめたいです。 素人思考で申し訳ありませんが、下記が参考になれば。 if (empty($_GET['id'])) { //index.phpの処理 } else { //test.phpの処理 } 最後に、 print <<<EOF については、次のステップでがんばってください。 まとめてやると大変なので。(^^ゞ

bang2000
質問者

お礼

ありがとうございます。 上と下のソースを使わせて頂いたら見事に私の思うとおりの動作をしてくれました。 本当に感謝です^^ しかしこのままだとka-kichiさんにほぼ全て作って頂いちゃった形になってしまいますね(^^;A これで満足しててはいけないので、今回のことも含めて勉強させていただきますm(_ _)m >違うフィールドを同じキーで検索することが特殊なので 本当は、「どのフィールドのデータを送ったか」によって検索するフィールドを変えられるようにできればスマートだと思いますし、 負荷も減ると思いますし理想なんですが、ちょっと考えてみても案の定「?」だったので、 これは後々の私の宿題と言うことにさせていただきます(^^;A print <<<EOF についてまた少し調べてましたら、ヒアドキュメントなるものに当たったのですが、これのことですかね・・? なにはともあれ、この度はお付き合いいただいて本当にありがとうございましたm(_ _)m

  • ka-kichi
  • ベストアンサー率59% (22/37)
回答No.3

う~ん。書き忘れたことを「inu2」さんに指摘されてしまいました。(^^ゞ 名誉挽回のために少し補足を…(^^ゞ CSVの区切り文字には、「通常使わない文字」がいいですよ。 私の経験上、「<>」が多いみたいですよ。 区切り文字は一文字とは限りません。 こうなると、CSV(カンマ区切り)ではなくなりますが…。 自分以外の人が使用するスクリプトであれば(通常、そうだと思いますが)誰がどんなデータを入力するか予想がつきません。 悪意のある人がわざと変なデータを入力するかもしれませんしね。(^^ゞ それを回避する手段として、POSTなりGETなりで送られてきたデータをHTMLエンティティに変換する方法があります。 HTMLエンティティに変換すると、HTMLタグが無効になります。 例:「<strong>」→「$lt;strong&gt;」となります。つまり、区切り文字「<>」と間違えることがなくなります。 以上、参考になれば幸いです。

bang2000
質問者

お礼

区切り文字は問題なければ「タブ」で、つまりTSVファイルにして対応しようと思ってます。 なるほど、HTMLエンティティに変換ですか 今はまだローカルで操作しているだけなので問題ないと思いますが、その時は勉強させていただきます! ありがとうございましたm(_ _)m

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

いきなりプログラムを作るのではなく CVS とはなんぞや? という事を理解しないと駄目ですよ CSVの仕様を正確に把握していないと何が原因なのか分からずにつまってしまいます 例えば、商品タイトルや、値段、簡単な説明の中に 「,」が含まれている場合はどうなりますか? 質問されてるソースを実行したら途中でexplodeで切られてしまいますよ 質問内で例にあげているサイトですが、プログラム初心者が理解しやすいように説明はしているものの、実際にここの例文で作られたサイトは実用には耐え難くあくまでも勉強するためだけの例にしかすぎません つまり、このサイトだけではお遊びのものしか作れません

bang2000
質問者

お礼

ご忠告ありがとうございますm(_ _)m 区切りの問題に関しては、タブ区切りなどにして適当に対応しようと思っていました。 プログラミングも含めて勉強させていただきます! ありがとうございました

  • ka-kichi
  • ベストアンサー率59% (22/37)
回答No.1

私も初心者で、おそらくbang2000さんと同程度のレベルだと思うのですが…。(^^ゞ どのように「うまくいかない」のかを書きましょう。 また、OS、PHPなどのバージョンなども書いた方がいいと思います。 さて本題ですが… ・$_GET['id']で送られてくるデータは日本語ですか?それとも半角英数字ですか? 書籍で例えると、CSVには 参考書,PHP入門,2000・・・ 雑誌,日系BP,1500・・・ 以下省略 と入っていると思われます。 これが、 if($line[0]==$id){ を満たすためには、$id(つまり$_GET['id'])に日本語が入っている必要があります。 しかし、GETで日本語を送るためには日本語を文字コードに変換する必要が出てきますので、お勧めではありません。 そこで、新規に「list.php」を作り、 <?php $category = array( "0"=>"参考書", "1"=>"雑誌", 以下省略 ); ?> とだけ入力しておきます。 もちろん、CSVは 0,PHP入門,2000・・・ 1,日系BP,1500・・・ 以下省略 としておく必要があります。 検索フォームには <select name="id"> <option value="0">参考書</option> <option value="1">雑誌</option> 以下省略 </select> としておき、$_GET['id']では0や1が送られてきます。 ただし、これはカテゴリーのみ検索可能なので、上記と同様の処理を「商品タイトル」や「おすすめ度」などに置き換えて繰り返す必要があります。 長くなりましたので、これを踏まえて再度ご質問願います。 また、index.phpとtest.phpを一つにまとめる方法としては、$_GETが空の時は通常一覧、$_GETが空ではない時は検索処理という具合にまとめることは可能です。 他のファイル構成なども考慮して決めてはいかがでしょうか? 余談ですが、スクリプト部分と表示部分は分けた方がいいと思います。 分けておくと、ソースが見やすくなりますし、将来、Smartyなどを利用する時に移行しやすくなりますよ。 分け方は、 <?php //前半にスクリプト //後半でブラウザ表示 print <<<EOF <html> 割愛 <td>a href="test.php?id=$line[0]">$line[1]</a></td> 割愛 </html> EOF; ?> とすればいいと思います。

bang2000
質問者

お礼

ご丁寧にありがとうございます^^ 使用しているOSはXP SP2 PHPはPCにインストールしているものってことでしょうか これはバージョン5.2.5となっています $_GET['id']で送られてくるデータですが、この辺りは例えば商品カテゴリーなら、CSVに新たに列を設けて、カテゴリーごとに 0 や 1 等の番号も割り当て、その番号で$_GETに送ろうと考えています。 説明が足りずに申し訳ありませんでした。 あと、とりあえず検索フォームは使わず、テーブルのセル内の要素にリンクを張るだけの形で作りたいと思っています。 自分はまず基本的な文法などからして理解していないのかもしれないですが、先の質問の if($line[0]==$id){ ?> <tr> <td><a href="test.php?id=<?=$line[0]?>"><?=$line[0]?></a></td> ~中略~ </tr> <?php } の部分、$line[0]が$idと一致しなければ$line[1]を調べる それも一致しなければ次・・・次・・・と動いてくれれば思い通りのものができると思うのですがどこに何を書けばいいのかがよくわからないのです。 elseifを$lineの数だけ繰り返して書いてみたりも一応したのですがエラーが出ました(何分勉強不足で文法表現から間違えているのかもしれないのですが) 全体のファイル構成ですが、とりあえずはこの商品リスト(index.phpとtest.php)と、あとは各商品の詳細ページだけということになります。index.phpとtest.phpはやはりまとめられるならまとめたいです。 最後にご指摘ありがとうございます。 スクリプト部分と表示部分を分ける、ですか。 print <<<EOF でググってみたのですが、ん~む、いまいち要領を得ません^^; 私のレベルが低すぎて理解できていないっぽいです(汗 後々勉強させていただこうと思いますm(_ _)m

関連するQ&A

  • PHPでCSVファイルのデータを表示したところ日本語が表示されません

    PHPで、CSVファイルの中身を表示させようと思ったのですが、一部の日本語が正しく表示されません。 問題のPHPとCSVファイルの内容を明記します。アドバイスお待ちしております。 PHP <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS"> <title>tokuten</title> </head> <body> <TABLE border="1"> <TBODY> <TR> <TD>ID</TD> <TD>名前</TD> <TD>点数</TD> </TR> <?php $fname = "name.csv"; $fp = fopen($fname, "r"); while (list($id, $name, $point) = fgetcsv($fp, 100, ",")) { echo"<TR>"; echo"<TD>".$id; echo"</TD>"; echo"<TD>".$name; echo"</TD>"; echo"<TD>".$point; echo"</TD>"; echo"</TR>"; } fclose($file); ?> </TBODY> </TABLE> </body> </html> CSV 1,a,50 2,b,70 3,c,100 55,松井,55 530000,フリーザ,530000

    • 締切済み
    • PHP
  • CSVファイルから検索出力してページ毎に別けたい

    宜しくお願いします。 下記URLを参考にアイテム別ページを作成したのですが データ量が多い為クエリを利用して10件毎にページを分けたいのですが やり方が思い浮かびませんどのように記述すれば出来ますでしょうか http://affiliate.aki-f.com/prog/page/33.html <?php require_once('common.php'); $Cid=$_GET['cid']; $Data=file('cat.csv'); for($i=0;$i<sizeof($Data);$i++){ $line=explode(",",$Data[$i]); if($line[0]==$Cid){ $CatTitle=$line[1]; } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <title><?=$CatTitle?> | サンプルリンク集</title> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <body> <a href="index.php">HOME</a> <h1><?=$CatTitle?></h1> <table border="1"> <tbody valign="top"> <?php $Data=file('item.csv'); for($i=0;$i<sizeof($Data);$i++){ $line=explode(",",$Data[$i]); if($line[1]==$Cid){ $ImageLink=DeleteEsc($line[2]); $TextLink =DeleteEsc($line[3]); ?> <tr> <td><?=$ImageLink?></td> <td> <?=$TextLink?><br><br> <a href="item.php?id=<?=$line[0]?>">詳細を見る</a> </td> </tr> <?php } } ?> </tbody> </table> </body> </html> item.csvファイルの中身は あいうえお,abc かきくけこ,efg さしすせそ,hij たちつてと,lmn 以下省略

    • ベストアンサー
    • PHP
  • 一つのコードで何ページも表示するとき

    いつも、疑問に答えてくれてありがとうございます。 下に書いたコードのように、getをつかってページが変わるようにした場合で疑問を持ちました。 何人もの人が一度にアクセスしてきても、下に書いたコードで誤作動を起こしたり、動作が遅くなったりはしないのでしょうか。 もし誤作動を起こすのであれば、copy関数をつかって見ようかと思っているのですが。 よろしくお願いいたします。 --test.php--------------------------------------- <?php if($_GET['page']==1){ $content="ほにゃららページ"; }elseif($_GET['page']==2){ $contentテストですページ"; }else{ $content="トップページ"; } echo<<<test <table> <tr> <td>${content}</td> </tr> <tr> <td> <a href=test.php?page=1>ほにゃららページ</a> <a href=test.php?page=2>テストページ</a> <a href=test.php>トップページ</a> </td> </tr> </table> test;

    • ベストアンサー
    • PHP
  • jQueryで行の移動

    jQueryでテーブルの行を移動させたいのですが、なかなかうまくいきません。 <table id = "table_test"> <tbody id = "test1"> <tr> <th>見出し1</th> <th>見出し2</th> <th><input type="button" id="button1" value="テスト1"></th> </tr> <tr> <td>項目1</td> <td>項目2</td> <td>項目3</td> </tr> </tbody> <tbody id = "test2"> <tr> <th>見出し1</th> <th>見出し2</th> <th><input type="button" id="button2" value="テスト2"></th> </tr> <tr> <td>項目1</td> <td>項目2</td> <td>項目3</td> </tr> </tbody> <tbody id = "test3"> <tr> <th>見出し1</th> <th>見出し2</th> <th><input type="button" id="button3" value="テスト3"></th> </tr> <tr> <td>項目1</td> <td>項目2</td> <td>項目3</td> </tr> </tbody> </table> 処理としては、button1を押下したら、<tbody id = "test1">~</tbody>の内容を<tbody id = "test2">と<tbody id = "test3">の間にくるように移動させたいです。 trの内容を次のtrの次に移動させることは調べてわかったのですが、tbodyで囲まれている部分をごっそり抜き出して、次のtbodyの後に移動させる方法がわかりません。 tbody内にはtrが複数あるため、移動させるというよりは、追加させてから削除するといった感じになるのでしょうか? どなたかご教授お願い致します。

  • JQueryでクリックされた文字を取得したい

    テーブルがあり、連番が 1 2 3 と振ってあります。 その文字情報をJQueryで取得するにはどのように記述すれば良いのでしょうか? 例)1をクリック → 1 を取得。 <table border="1" width="150"> <tbody> <tr> <td width="50"><a href="#">1</a></td> <td>田中</td> </tr> <tr> <td><a href="#">2</a></td> <td>佐藤</td> </tr> <tr> <td><a href="#">3</a></td> <td>鈴木</td> </tr> </tbody> </table> ご存知の方教えて下さい。

  • Dreamweaverのデザインで表示がおかしい時

    IEだと綺麗に表示されるけど、Dreamweaverのデザインで見ると表示がおかしい時って結構あり困ってます。 ソースフォーマットとかやってもやはり駄目です。 今回の場合、どのタグが悪そうでしょうか? <HTML> <HEAD> <META HTTP-EQUIV="CONTENT-TYPE" CONTENT="TEXT/HTML; CHARSET=EUC-JP"> </HEAD> <BODY> <BR> <BR> <BR> <TABLE align="center" cellSpacing=0 cellPadding=0 width="95%" bgColor=#0066cc border=0> <TBODY><TR><TD> <TABLE cellSpacing=2 cellPadding=1 width="100%" border=0> <TBODY> <TR bgColor=#0066cc> <TD align=middle><SMALL><B><FONT color=#ffffff> テキストツール </FONT></A></B></SMALL>&nbsp; </TD></TR> <TR bgColor=#ffffff> <TD align=middle> <TABLE height="400" cellSpacing=0 cellPadding=1 width="95%" border=0> <TBODY> <TR valign=top> <TD width="100%" valign="center" align="center"> <BR><A>トップページ</A><BR><BR> </TD> </TR> <TR valign=top> <TD width="100%" valign="top" align="center"> <A HREF="list">あ</A><BR><BR> <A HREF="clist">い</A><BR><BR> <A HREF="slist">う</A><BR><BR> </TD> </TR> </TD></TR></TBODY></TABLE> </TD></TR></TBODY></TABLE> </TD></TR></TBODY></TABLE> </BODY></HTML>

  • 表示順が違うのはなぜでしょうか?

    PHP初心者です。 test1.php------------ <a>test1</a> test2.php------------ <table> <tr><td><?php include("test1.php"); ?></td></tr> <td><tr><a>ABC</a></td></tr> </table> test3.php------------ <table> <tr><td><?php include("test1.php"); ?></td></tr> </table> <table> <td><tr><a>ABC</a></td></tr> </table> で、test3.phpでは test1 ABC となるのに、test2.phpでは ABC test1 となってしまうのは何故でしょうか?よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPとCSVでレシピサイトを作る

    こんにちは☆ PHPとCSVでレシピサイトを作ってます。 MYSQLでの構築は知識が足らないのでCSVを用いています。 まず HTMLで下記のように書いて | 略 <a href=\"deatail.php?recipe=1\">作り方</a> カレーライス|30分|★★★★ <a href=\"deatail.php?recipe=2\">作り方</a> シチュー|10分|★★☆☆ deatail.phpで $code = $_GET[\'recipe\']; $code =htmlspecialchars($code); $fp = fopen(\"recipe.csv\", \"r\"); while ($data = fgetcsv($fp, 10000)) { if ($data[0]==$code) { print <<<HTML <table> <tr> <td>$data[1]</td> <td>$data[2]</td> | 略 </tr> recipe.csvはこんな感じです ID,名前,材料,一言 1,カレーライス,玉ねぎ/にんじん/セロリ/にんにく/鶏肉,初心者でも作りやすいよ 2,シチュー food.csv ID,名前,画像, 1,玉ねぎ,<img src=\"tamanegi.gif\"/> 2,にんじん<img src=\"ninjin.gif\"/> 3,セロリ<img src=\"serori.gif\"/> 4,にんにく<img src=\"ninniku.gif\"/> 5,鶏肉<img src=\"toriniku.gif\"/> さらに玉ねぎやにんじんetcの詳細をdeatail.phpに表示させたいんですが、どのようにすればいいのか・・・ 頭が混乱してます(>_<) 一応考えてみたんですが recipe.csvの材料の所に 1,カレーライス,<a href=\"food_deatail.php?food_id=1\">玉ねぎ</a>/<a href=\"food_deatail.php?food_id=2\">にんじん</a>/セロリ/にんにく/鶏肉,初心者でも作りやすいよ <a href=\"food_deatail.php?food_id=1\">玉ねぎ</a>と書いて food_deatail.phpで $code = $_GET[\'food_id\']; $code =htmlspecialchars($code); $fp = fopen(\"food.csv\", \"r\"); while ($data = fgetcsv($fp, 10000)) { if ($data[0]==$code) { print <<<HTML <table> <tr> <td>$data[1]</td> <td>$data[2]</td> こうするしか無いのでしょうか? 何か複雑で頭がコンフューズしております 是非ご教授よろしく願います。

    • ベストアンサー
    • PHP
  • よくわかるPHPの教科書のエラー?について

    わからないところがあるので教えて下さい。 (コード) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. w3.org/TR/xhtmll/DTD/xhtmll- transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <title>PHP入門</title> </head> <body> <?php require('dbconnect.php'); $page = $_REQUEST['page']; if($page =='') { $page =1; } $page = max($page, 1); //最終ページを取得する $sql ='SELECT COUNT(*) AS cnt FROM my_items'; $recordSet = mysqli_query($db, $sql); $table = mysqli_fetch_assoc($recordSet); $maxPage = ceil($table['cnt'] /5); $page = min($page, $maxPage); $start = ($page - 1) * 5; $recordSet = mysqli_query($db, 'SELECT m.name, i.* FROM makers m, my_items i WHERE m.id=i.maker_id ORDER BY id DESC LIMIT ' . $start . ',5'); ?> <p><a href="input.php">新しい商品を登録する。</a></p> <table width="100%"> <tr> <th scope="col">ID</th> <th scope="col">メーカー</th> <th scope="col">商品名</th> <th scope="col">価格</th> <th scope="col">編集・削除</th> </tr> <?php while($table = mysqli_fetch_assoc($recordSet)) { ?> <tr> <td><?php print(htmlspecialchars($table['id'])); ?></td> <td><?php print(htmlspecialchars($table['name'])); ?></td> <td><?php print(htmlspecialchars($table['item_name'])); ?></td> <td><?php print(htmlspecialchars($table['price'])); ?></td> <td><a href="update.php?id=<?php print(htmlspecialchars($table['id'])); ?>">編集</a> <a href="delete.php?id=<?php print(htmlspecialchars($table['id'])); ?>" onclick="return confirm('削除してもよろしいですか?');">削除</a> </td> </tr> <?php } ?> </table> <ul class="paging"> <?php if($page > 1) { ?> <li><a href="index.php?page=<?php print($page - 1); ?>">前のページへ </a></li> <?php } else { ?> <li>前のページへ</li> <?php } ?> <?php if($page < $maxPage) { ?> <li><a href="index.php?page=<?php print($page + 1); ?>">次のページへ </a></li> <?php } else { ?> <li>次のページへ</li> <?php } ?> </ul> </body> </html> 参考書?はよくわかるPHPの教科書5.5対応なのですが、一番初めにこのファイルを開くと Notice: Undefined index: page in C:\xampp\htdocs\shop\index.php on line 14っとエラー?が出ます。 次のページ、前のページを押すとエラー?は消えるのですが、とっても気になります。 なるべくなら、エラーを非表示にせずにプログラム内で問題を解決したいのですが・・・ 初心者なのでどうして良いかわかりません。 出来れば、とってもわかりやすい解決を出来ればお願いしたいです。(馬鹿なので・・・) よろしくお願いします。

    • ベストアンサー
    • PHP
  • 表を外部ファイルとして読み込む方法

    <TABLE border="1"> <TBODY> <TR> <TD><A href="1.html">1</A></TD> <TD><A href="2.html">2</A></TD> <TD><A href="3.html">3</A></TD> <TD><A href="4.html">4</A></TD> </TR> <TR> <TD>5</TD> <TD>6</TD> <TD>7</TD> <TD>8</TD> </TR> <TR> <TD>9</TD> <TD>10</TD> <TD>11</TD> <TD>12</TD> </TR> <TR> <TD>13</TD> <TD>14</TD> <TD>15</TD> <TD>16</TD> </TR> </TBODY> </TABLE> 上記のようの表を、複数のページで読み込ませたいのです。 表は随時変更する為、各ページをいちいち修正しなくてはなりません。 ですので外部ファイルとして、上記の表を作り、各ページで読み込む方法はあれば教えていただきたいです。 <script language="JavaScript" src="test.js"></script> という感じでと読み込めるかと思いましたが、jsファイルの方に構文エラーが出てしまうようです。 jsファイルの書き方が悪いのか、もしくは無理なのか、他に方法があるのか、 もし分かりましたらよろしくお願いしますm(__)m

専門家に質問してみよう