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

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

PHPを使ってMySQLを操る

MySQLデータベースをPHPで呼び出そう

前回作ったデータベースを、コマンドプロンプトの画面ではなく、ブラウザ上で見れるようにする。
前回:MySQLはじめの一歩 - データベースを作る


まずはソースから。
※下記コード及び解説は、『MySQL入門以前』を基に書いています。

1.<?php
2.mysql_connect('localhost','root','*****');
3.mysql_select_db('arcarna');
4.
5.$sql="select * from member";
6.$result=mysql_query($sql);
7.$rows=mysql_num_rows($result);
8. if($rows==0){
9. echo "<p>該当データがありません</p>";
10. }
11. else{
12. while($row=mysql_fetch_array($result)){
13. echo "<p>";
14. echo $row["name"];
15. echo " ";
16. echo $row["work"];
17. echo " ";
18. echo $row["about"];
19. echo " ";
20. echo $row["blog"];
21. echo "</p>";
22. }
23. }
24.?>



おっとそうだ!大切なことを思い出した!
今回は、コメント欄でokayamaさんにアドバイスいただいたのを参考に、
ソースコード実体参照で書いてみた!みんな幸せかな・・・゚+.(0゚・∀・)゚+.゚
これ知らなかったので、感動のあまりテンション高すぎのお礼メールを発射してしまった。
でもきもい紅にお返事くれた!okayamaさんとてもいいひと。
ありがとうございました!!



ではソースに戻る。
2.3行目。
これは前回の mysql -u root -puse arcarna; に相当するぽい。
つまり、MySQL に接続して、データベースを指定する、という手順。


5行目。
select * from member(memberテーブルに格納したデータの内容を表示)という文字列を、
変数 $sql に代入している。


6行目。
mysql_query というのは、クエリ文をMySQLで実行するという関数。
いま $sql には select * from member が入ってるので、これを実行するということか。
で、それを今度は $result に代入している。


7行目。
mysql_num_rows は、$result(=select * from member) を実行した結果の行数を返す関数。
なんだろ、次から次へと代入してる。
これ、お決まりの手順みたい。


8行目。
$rows が超イコールで0だったら、つまりmemberテーブル内にデータが何も入っていなくて0行だったら。


9行目。
”該当データがありません”と echo せよ。
10行目は if 終了の中カッコ。


11行目。
そうでなければ、つまりmemberテーブル内にデータが入っていて、表示した結果が0行じゃなかったら。


12行目。
(カッコ) 内の条件が成り立つあいだはずっと {中カッコ 以下を実行せよ。
繰り返し構文:8日目 目指せ!ループマスターへの道!

(カッコ) 内の条件。
mysql_fetch_array というのは、引数($result) の結果を、連想配列$row に格納するという関数。
だから、$result にデータがある限りはずっと、{中カッコ以下が実行される。


13・21行目は、タグ出力の開始と終了。


14・16・18・20行目は、$row 内に格納された name,work,about,blog のデータをそれぞれecho


15・17・19行目は、各項目のあいだにスペースを挿入してる。
データぶっ続きだと見づらいからね><


22・23行目は while,else 終了の中カッコ。



わあ!できた!んじゃブラウザで見るど(`・ω・´)

member.php(ローカルなのでSS)



神様・・・今夜は良い夢が見れそうです・・・!!!


MySQLはじめの一歩 - データベースを作る

私信>ゆーすけべーさん
 ブクマコメ産休です!把握した!と言いたいとこだけど、そうでもないです。
 でも一応、把握しました!(どっちだ)



MySQLを使ってデータベースを作ってみよう

MySQL入門以前』をざっくり完食したので、今度はじっくりよく噛んで食べる。
ナイスタイミングで本日、アルカーナのメンバー紹介ページが完成したので、
ここのデータを使ってarcarnaというデータベースを作ってみよう(`・ω・´)
参照データ:アルカーナ | メンバー紹介



MySQLのインストール&環境設定は、『MySQL入門以前』を見ながらやったら問題なく出来た!
この面倒臭い作業が、泣き言垂らさずちゃんとひとりで出来るなんて・・・!
この本には "ドラえもん要らず!" というキャッチコピーを授けたい。
それはさておき。


MySQLコマンドプロンプトから操作するらしい。





mysql -u root -p

  ↓
パスワード入力 で、MySQLモニタを起動。
間違って -pのあとに;(セミコロン)打ってエンター押したら怒られた。
変な音でた。
以後気をつける。



まずはデータベースを作る。
構文は create database ほげほげ;
今回は arcarna というデータベースを作成。





このデータベースで作業するには、最初に「今からこれを使うよ!」と指定しなくちゃいけないんだって。
use arcarna; arcarnaを使いますよっと。





さらにこの中にテーブルというのを作って、その中にデータを入れるんだって。
図書館を建てても、本棚がなきゃ本を格納できないじゃん!という感じだろか。
たぶんそう。
テーブルを作る構文は create table テーブル名(フィールド名1 データ型 , フィールド名2 データ型・・・);

今やりたいのは、memberというテーブルに、name,work,about,blogという4項目を作ること。
だから、create table member( name char(20), work char(30), about char(255), blog char(30));





これでおk!
char っていうのはデータの型で、characterの省略形。
文字を入れたいときはこれ。
(20)だと、半角で20文字までのデータが格納できる。
最大で(255)まで。
それ以上長い文字列を格納したい場合は text を使う。
ちなみに数字を入れたい場合は int
integer(整数)の略。



うし。
Query OK って言われると燃えるね。
燃えてきた!
でもこれだけじゃちと不安。
本当にちゃんと作れたかどうか確認したい。
作った内容を確認するときは show fields from member;
メンバーテーブルのフィールドを見せて!





ありがとう。
本当にありがとう。
イメージ通りでありがとう。


ここからが大事。
実際にデータを入れていく。
REPLACE into テーブル名 values(フィールド1の値 , フィールド2の値・・・);
具体的には REPLACE into member values(nameの値 , workの値・・・); と入れればいいのね。





aboutは長いのでひとまず省略。
そうそう、日本語入力は[ALT]+[半角/全角キー]で切り替え。

教えて!goo
で見た( ・ノз・)





こんな感じでガツガツ入れる。
で、入れ終わったらやっぱり確認したい。
確認するには select * from member;





入ってル━━(゚∀゚)━━!!!



最後に、さっきスルーしたaboutの値を追加。
update member set about="新しい値" where name="××";

where 以下で条件を指定。
今回は nameが"××" の人のaboutの欄に"新しい値"を入れる。
とりあえず、一番短そうな佐久間さんにしよっと( ゚ノД゚)





では確認。





無事、入りましたね!やたー\(^o^)/やたー\(^o^)/
MySQLって素晴らしい。



geekDBプロジェクトの件

コメント欄およびブックマークコメントでのアドバイス、
まことにありがとうございますっ。


オリジナリティ、出したいですね。
ちょっと考えていたのは、

・各Geekさんにキャッチフレーズを付ける(ex:社員は父1人 天パでスケベな若社長)
・各Geekさんから一言(or過去の名言など)

を、ページの見出しにでっかく入れるとか。

あとは連絡先、Twittermixiアカウント、SBM(アクティブに利用してる場合)、
好きな本(or映画、尊敬してる人とか?)等も、可能であれば入れたいなぁと。
この辺りは、掲載許可をいただく際に、併せてお伺いしようと思っています。
もし「インタビューOK!」という素敵な方がいらっしゃれば、
全国どこへでもルーラひとつで飛んでいく心構えです。


API公開てのは、ソース公開とはまた別なのかな・・・。
ソースはここに貼る予定です。
なるべく、公開できるものは公開していく所存!


そだ。
ひとつ気になったのが、ゆーすけべーさんからいただいたコメント
>それ Acme::CPANAuthors-Japanese でできるかもよ
  http://coderepos.org/share/browser/lang/perl/Acme-CPANAuthors-Japanese


に、にほんごでおk・・・( ;∀;)
すいません!ばかですいません!理解できませんでしたごめんなさい><


いま 『MySQL入門以前』 を消化中で、これから ”なんでもDB” 作りにチャレンジするところ。
コメント欄でも好評だったけど、この本すごい!マジ最高!!
もう食べちゃいたいくらい分かりやすい。
目に入れても痛くないくらい分かりやすい。
いま「無人島に1つだけ持っていけるとしたら・・・」て聞かれたら、
間違いなく『MySQL入門以前』と即答する。
ごめん言い過ぎた。
いつもの悪い癖。
  

日本一のgeekDBを作る!

ことに決めた。
わたしは、にほんいちのギークデータベースを作る。


今日読んだ近藤さん@はてなのインタビュー記事ブコメが気になった。


技術者には一般受けをするサービスを作る事は絶対に出来ない。
これを理解しない限り1000万どころか100万も無理。
こんな簡単な事が何でわかんないんだろう?



近藤さんは、「国内で1000万人に使ってもらえるサービスを作りたい」 という。
月並みな励まししか出来ないけど、本当に本当に、頑張って欲しいと思っている。

でも、1000万人のうちの1人になるかもしれない私の友達は、近藤さんのことを全く知らない。
きっとはてなも知らない。
もちろん、近藤さんがこんな風に悩んでいることも。

なんだろなあ。
私は結局、身近な人に自分の好きなことを伝えたいだけなのかもしれないけど。
でもその結果、近藤さんを応援する人がちょっぴり増えたりして、したらばしたらば、
近藤さんもピコーンって新しいひらめきを得るかもしれなくて。
そうなったら楽しいよね(・∀・)


うし!決まった!!
長い道のりになりそうだけど、これはきっと楽しい。
wktk してきた。
wiki とかで企画書作った方がええんかの?要検討><
とりあえず以下に、現時点でのイメージをざっくり書いてみる(`・ω・´)



日本一のgeekDB計画


■サービス名 : geekDB(仮)
→シンプルイズベストなのでこれでいこかなと思っている。


■サービス概要 : 日本のギークたちのプロフィール集
→最初は20人くらいにして、徐々に追加ってのがいいかしらん。
wikipediaぽいクールな紹介もいいんだけど、コンパイルボタンぽいのを付けて
 「Geekってなに?」 ていう人たちへの分かりやすいページも作りたい、かもかも。
 でもそれだと1人につき2ページ必要だしなぁ・・・むむむ。


■Geekの定義 : Blog等で情報発信している著名プログラマ・有名サービスの開発者
→これがわりと悩ましいところ。
 私が思いつく人といったら、やっぱりググって見つけられる人だけになっちゃうし(´・ω・`)
 本当はもっともっと、私の知らないところで活躍している人もいるんだろけど、捜せないしなぁ。
 それに、ご本人の意思もあるし!「載せちゃいやん><」て人はもちろん載せない。
 失礼のないよう、事前にちゃんと確認を取らなければ。


盛り込む内容としては、
・名前
・サイト(blog)URL
・代表サービス
・人物概要
・インタビュー記事や著書の紹介
・経歴


あたりかな?連絡先や所属してる会社とかどうしよう。
微妙なラインだ。
って、そんなことより!いっちゃん大事なこと忘れてた!!
これはあれか、PHPだけじゃなくてMySQLも使うのかな?
確か本棚の奥のほうに 『MySQL入門以前』て本があったな・・・。
買っただけでやってない・・・。
遠い記憶をたどると、あの中にデータベースがどうのこうのと書いてあったような。
[あとでよむ]



とりあえず!モチベーション上がってきたので明日から本気出す(`・ω・´)
ちょ!ホントだって!前も同じこといった気がするけど、今度はホントにホントなんだってば!!
くそう・・・見てろよおまえら!!!(誰?) ぎゃふんと言わせちゃるんだから><



さっきスカイプであきやんを見掛けたので、さっそく掲載して良いか聞いてみたら、
事前確認するならOKて言ってくれた!いやっほう!!
そうそう。
今月あきやんの誕生日があってさ。
一緒にアボカド料理のお店に行ってお祝いしたんだ♪
全部アボカド料理!デザートのアイスまでアボカド!おいしかったまた行きたいヾ(*´∀`*)ノキャッキャ