日記
はてなアイドルをコンパイルしてきた。
リアルで。
楽しすぎてやばかった><
$_GETを使ってプロフィールページにidデータを渡す
geek DataBase - index.php PHP部分のコードだけ貼るね!
1 <?php
2 mysql_connect('localhost','ユーザ名','パスワード');
3 mysql_select_db('データベース名');
4 mysql_query("set names utf8");
5
6 $sql="select * from geekDB";
7 $result=mysql_query($sql);
8 $rows=mysql_num_rows($result);
9
10 while ($item = mysql_fetch_array($result)) {
11
12 echo "・";
13 echo " ";
14 echo "<a href="http://geekdb.jp/geek.php?id=";
15 echo $item['id'];
16 echo "">";
17 echo $item['name'];
18 echo "</a><br />";
19 }
20 ?>
2,3行目は以前と同様。
MySQLに接続→データベースを指定。
PHPを使ってMySQLを操る
4行目。
文字コードをセットするクエリを送信。
最初、文字化けしまくりングで激怒していた。
で、この1行を入れれば解決か?というと、そうでもない。
まだ化ける。
なぜだ。
<meta http-equiv="Content-Type" content=="text/html; charset=Shift_JIS"/>
実はヘッダで charset=Shift_JIS と指定してしまっていたのね。
htmlちゃん 「文字コードは Shift_JIS で出力ですね!」
MySQLくん 「否!文字コードは utf8 と指示されたぞ!」
という具合に、2人(?)がケンカをしてしまった(´・ω・`)
けんかをやめて!2人を止めて!私のために争わないで・・・!
解決策つ charset=utf8
同一ファイル内の文字コードは統一しなくちゃ。
htmlの文字コードをutf8に直して、いっちょあがり!
6,7,8行目も、PHPを使ってMySQLを操るの時と一緒。
10行目から始まる while 文も、構造的には前回と同じなんだけど、ポイントは14〜16行目。
¥マークは”エスケープ文字”といって、ダブルクォーテーションの中でダブルクォーテーションを使う場合は、その直前に¥を入れてエスケープしなきゃいけないらしい。
パッと見、ややこしいよね(`・3・)
PHPを考えずに、htmlタグだけで書いてみよう。
<a href="http://geekdb.jp/geek.php?id=$item['id']">
ギークさんの個別ページへのリンクタグ。
個別ページは1人1人別々に作るのではなく、geek.phpという1ページだけ。
このページは、名前など各項目のフォーマットを用意した単なる受け皿。
肝心のデータは、データベースから引っ張ってくる。
その引っ張る際に必要となるキーが、$item['id']。
ギークさんの id を手がかりに、データを呼び出す。
$_GET を使ってるんだけど、$_GET の話はむかぁーしチラっと書いたような・・・
>> 1日目 見つけて 私のセキュリティホール - ギークなお姉さんは好きですか
あれ、ちゃんとアウトプットしてなかった。
ごめん><;;
GETメソッドによるデータの送り込み方
URLの後ろに「?変数名=値」を追記することで、その変数名と値を「URL」に送り込むことができます。
複数の変数を送り込みたい場合は「?変数名=値&変数名=値」のように書きます。
参考:MySQL入門以前
今回のケースで言うと、http://geekdb.jp/geek.php というURLの後ろに ?id=$item['id'] と追記することで、変数 id とその値(ギークさんのid)をgeek.phpに送り込んでいる。
これ、表示されたときはマジで感動した!「ハッ!」ってリアルで言った。
一瞬、呼吸止まった。
私が書いたコードが、私のデータベースからデータを呼び出してくれた!ブラウザに表示してくれた!!
ミラクルガールすぎる・・・・!!プログラミング超たのしいいいいいいいい!!!!!