• 締切済み

クエリを利用して次のページへ

phpを学び始めて2日目の初心者です 現在サンプルスクリプトをコピペしながら勉強中です。 クエリを利用して大量のデータベースから検索項目にHitする物を小分けして 次のページへデータベースを出力したいのですが どのように記述すれば良いのか思いつきません どのようなPHP文章を書けば良いのでしょうか。 以下が現在の内容です <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <head> <body> <?php $Cid=$_GET['cid']; $Data=file("item.csv"); $P=$_GET["c"]; for($i=0;$i<sizeof($Data);$i++){ $line=explode(",",$Data[$i]); if($line[1]==$Cid){ //Cidと一致するテーブル検索 $ID=$line[0]; } echo "<a href=test2.php?id=$ID>リンク</a>"; } ?> </body> </html> item.csvファイルの中身は あいうえお,abc かきくけこ,efg さしすせそ,hij たちつてと,lmn 以下省略

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

大きく3つ修正をしたほうが良いでしょう (1)$_GETをいきなり書かずにissetで調査 (2)ファイルから読み取った文字列に対しては改行文字を削除 (3)URLに流し込むときにはurlencodeでエンコード それを踏まえるとこんな感じ <?PHP $Cid=isset($_GET['cid'])?$_GET['cid']:""; $Data=file("item.csv"); $P=isset($_GET["c"])?$_GET["c"]:""; for($i=0;$i<sizeof($Data);$i++){ $Data[$i]=str_replace(array("\r","\n"),"",$Data[$i]); $line=explode(",",$Data[$i]); if($line[1]==$Cid){ $ID=$line[0]; echo "<a href=test2.php?id=".urlencode($ID).">リンク</a>"; } } ?> ちなみにファイルすべてを読み込んで処理すると効率はわるいですね 頭から読んでヒットしたら処理をとめるほうがよいかもしれません その場合はfile()ではなくfopenで処理する通常のファイルI/Oを利用しましょう

kan1110
質問者

お礼

ありがとうございましたm(__)m

関連するQ&A

専門家に質問してみよう