2010年12月24日金曜日

12/24覚書

★12/23欠席分の復習
プロンプトの環境変数にcd c:\pleiades\xampp\mysql\binを追加。
これでプロンプト起動させてすぐアクセス可能。
◆mysql -u ユーザー名 -p -bでbeep音消えるYO!
◆set names sjis;で日本語出るよ。プロンプト起動のたび設定だけど;

メールのサンプルデータ入れてカラム結合。
select
    address.id,
    address.name,
    address.busyo_id,
    busyo.busyo_name,
    yakusyo.yakusyoku_name
from
    address,
    busyo,
    yakusyoku
where
    address.busyo_id = busyo.busyo_id
    and address.yakusyoku_id = yakusyoku.yakusyoku_id;

where~=~は右側IDと同じ条件のIDを検索して、って意味。
and~は条件追加。

★amazonで色々。
mysql -u ユーザー名 -p < amazon_products.sql ←インポートしたいファイル
パスワード入力して
show tables;



SELECT *
FROM `amazon_products`
 ←表示したいテーブル名
LIMIT 0 , 1;

で1レコードだけ出るよ

SELECT *
FROM `amazon_products`
LIMIT 0 , 1\G

\Gはselect分の表示方法。表の表示から縦表示で見やすくなるよ。

☆phpで表示させてみるよん。
<pre>タグできれいに出るよ。
<pre>
<?php
//mysql に接続する
$db = mysql_connect('localhost','ユーザー名','パスワード');
// データベースを選択する
$sdb = mysql_select_db('Study');
// クエリを送信する
$sql = "select * from amazon_products limit 1;";
$result = mysql_query($sql);
while ($row = mysql_fetch_array($result)) {
    print_r($row);
}
?>
</pre>

◆printはインデント(TABキー)でレイアウトを整えるくせをつける。
◆print_rはデバッグ用タグ。カラムごとの内容がコマンドで出てくるよ。

★画像を出してみよう

<?php
//mysql に接続する
$db = mysql_connect('localhost','ユーザー名','パスワード');
// データベースを選択する
$sdb = mysql_select_db('Study'); ←use database;と同じ
// クエリを送信する
$sql = "select * from amazon_products limit 1;";
$result = mysql_query($sql); ←

while ($row = mysql_fetch_array($result)) {
    print '<img src="'.$row["mediumimageurl"].'"><br>'; ←rowは1行表示
}
?>

★画像を大きくして……はやっちゃったので;
商品名と価格を出してみるよ。
上記にこの2行足すよ。

    print $row["name"]."<br>";
    print $row["price"]."円"."<br>";

カラムは()じゃなくて[]で囲うよ~……そこがわかんなかった;

★nullを除外、名前と画像

$sql = "select * from amazon_products where price is not null limit 10;";
sqlの箇所に入れ替え~~。
whereが先になる。limitて多分一番最後;

★preをprintに入れる。
    print "<pre>";
    print_r ($row);
    print "</pre>";

★メールの練習問題
比較演算子
<= ***** ~まで

SELECT * FROM amazon_products WHERE price is not null AND price <= 30000 ORDER BY price DESC LIMIT 10

ソート
ascが昇順、descが降順

前文検索CANON

SELECT * FROM amazon_products WHERE price is not null AND name like '%Canon%' ORDER BY price DESC LIMIT 10

後方検索SONY

SELECT * FROM amazon_products WHERE price is not null AND name like 'sony%' ORDER BY price DESC LIMIT 10

limit →件数の指定
offset →~件目を指定。limitの後につく。

SELECT * FROM amazon_products WHERE price is not null ORDER BY price DESC LIMIT 100 offset 15

★画像にURLでジャンプ
    print '<td>'.'<a href="'.$row["url"].'"><img border="0" src="'.$row["mediumimageurl"].'"></a>'.'</td>';
ここはさすがにわかたよー。つづりはここ参照www
phpで文字列を出したいときは''で。HTMLタグの中は""でくくるよん。
ぶっちゃけテンプレートエンジンでphpとhtmlを分けて作るからそんなに気にしないでおk。

釣りコーナーも更新予定。多分。