電子書籍の厳選無料作品が豊富!

すごく初歩的な質問だと思い申し訳ないのですがご教授下さい。
タイトル通り、テーブルの最後のレコードしか表示されないのです。
この前までは全て表示できていたのですが、
どこをどういじったのか、このようなことになってしまいました。
itemというテーブルには53個登録があり、53番目のものしか表示されません…


$sql = "select * from item order by id";
$rst = mysql_query($sql, $con);
while($col = mysql_fetch_array($rst)) {
$dbt = "<tr bgcolor='#FFFFFF'>
<td align='center'><a href='use.php?key=".$col["name"]."'>".$col["name"]."</a></td>
<td align='center'>".$col["name1"]."</td>
<td align='center'>".$col["name2"]."</td>
<td align='center'>".$col["name3"]."</td>
<td align='center'>".$col["name4"]."</td>
<td>".nl2br($col["name5"])."</td>
<td align='center'>".$col["name6"]."</td>
</tr>";
}
mysql_free_result($rst);
$con = mysql_close($con);


それと、もう一つ解決したいことがあるのですが、
<a href='use.php?key=".$col["name"]."'>".$col["name"]."</a>
のようにアンカーを張り、次のページに変数を渡す方法で、use.php?key=*****のように、表示させないことは可能でしょうか?
見た目にも悪いですし、セキュリティ上も好ましくないかと思いまして方法があればと思いました。

A 回答 (1件)

一つしか表示されないのはwhile節で$dbtに


毎回代入しているからでしょう。
$dbt = ・・・を
$dbt.= ・・・に替えてください
私ならヒアドキュメントで流し込みをしますが
それは好き嫌いの問題なので今回は割愛します

アンカーの件は「見た目」「セキュリティ」は
ともに全く問題がありません。キーの受渡し
というシステムはそもそもがこのようなものです。
ただし”名前”で受け渡すのはあまり好ましくない
とおもいます。db上でもidで管理していると
思いますので、idで受け渡すのが運用上わかりやすく
間違いがない方法だと思います。

ちなみにもしnameが漢字や特殊記号を含む場合は
ダイレクトに受け渡すのはurlのルール違反になるので
好ましくありません。
    • good
    • 0
この回答へのお礼

ご丁寧な解説ありがとうございます。
自分でも見直して、.がないことに気がつきました。
このような基本的なミスに気がず、自分の勉強不足さが身にしみました。
 
変数を渡す方法はURLエンコードして渡そうかと思っていましたが、idで受け渡す方法でやろうと思います。
その方がスマートで運用上にも便利ですね。
アドバイスありがとうございました。
これからもっと勉強したいと思います。

お礼日時:2006/02/12 01:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!