ギークなお姉さんは好きですか

恋焦がれる理想の男性・ギークを知るため、プログラミングがわかるお姉さんを目指すブログ

GETメソッドでデータを送る

日記

 はてなアイドルをコンパイルしてきた。
リアルで。
楽しすぎてやばかった><


$_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に送り込んでいる。


これ、表示されたときはマジで感動した!「ハッ!」ってリアルで言った。
一瞬、呼吸止まった。
私が書いたコードが、私のデータベースからデータを呼び出してくれた!ブラウザに表示してくれた!!
ミラクルガールすぎる・・・・!!プログラミング超たのしいいいいいいいい!!!!!