[PR]
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
シングルクォーテーション「'」、ダブルクォーテーション「"」の違い
$category[0] = 'Study';
print "$category[0]";
print '<br\>';
print '$category[0]';
//結果
Study //ダブルクォーテーションでは変数の値として扱われる
$category[0] //シングルクォーテーションでは文字列で扱われる
php.iniでincludeが何故かeclipseではきちんと認識されないのでeclipse上で設定。(Dreamweaverではきちんとphp.iniのincludeが反映されていて表示できている)
ついでになぜかsmartyが内部エクスプローラーで表示出来ない→firefoxで表示したら何故か出来た
PHPエクスプローラー上で右クリック
↓
インクルード・パス
↓
インクルード・パスの構成
↓
ライブラリー タブ
↓
外部ソース・フォルダーの追加
↓
smartyのSmarty.class.phpの入っているフォルダを選ぶでおk
違うカテゴリーの者を組み合わせて、セット商品にする。
合計価格が2500円以上になる組み合わせの一覧を出す。
SELECT
p1.ProductName AS 商品名1
,p2.ProductName AS 商品名2
FROM
Products AS p1
JOIN
Products AS p2
ON p1.ProductID < p2.ProductID
AND p1.CategoryID <> p2.CategoryID
WHERE
(p1.Price + p2.Price) > 2500
;
この結合条件の不等号「ON ~ < ~」は、
一度出現したレコードを2度と出さないため。
この不等号「<」を否定演算子「<>」にすると、
同じ組み合わせが何度も出てくる。
書き方ドリル ワンポイントレッスンp171
論理演算子
例 | 名前 | 結果 |
---|---|---|
$a and $b | 論理積 | $a および $b が共に TRUE の場合に TRUE |
$a or $b | 論理和 | $a または $b のどちらかが TRUE の場合に TRUE |
$a xor $b | 排他的論理和 | $a または $b のどちらかが TRUE でかつ両方とも TRUE でない場合に TRUE |
! $a | 否定 | $a が TRUE でない場合 TRUE |
$a && $b | 論理積 | $a および $b が共に TRUE の場合に TRUE |
$a || $b | 論理和 | $a または $b のどちらかが TRUE の場合に TRUE |
"||" の優先順位は "or" より高くなります
"&&" の優先順位は "and" より高くなります
「排他的論理和」は、$a xor $b とした場合、$a と $b のどちらか片方が true の場合のみ true を返す演算子 <?php
var_dump(false xor false);
var_dump(false xor true);
var_dump(true xor false);
var_dump(true xor true);
?>
実行結果: bool(false) bool(true) bool(true) bool(false)
http://www.php.net/manual/ja/language.operators.logical.php
ファイルをアップロード
必ず、post(getはダメ), multipart/form-data。
<form action="" method="post" enctype="multipart/form-data">
アップロードされたファイルは$_FILESに連想配列で渡される。
$_FILES['name']などとして、formのname属性に指定した値で取り出す。
仕組みは、
ファイル → (アップロード) → tmpディレクトリ → (move_uploaded_files) → 目的のディレクトリ
tmpディレクトリに一端、格納される。この時、tmp_name というファイル名で一時保管されている。
一時保管先は<?php print ini_get('upload_tmp_dir'); ?> で調べられる。
そして、このファイルを move_uploaded_files で目的のディレクトリへ動かす。
ブール値 = move_uploaded_files(コピー元 , コピー先);
p109
<form action="action.php" method="post" enctype="multipart/form-data">
<dl>
<dt>写真</dt>
<dd><input type="file" name="my_img" id="my_img" /></dd>
</dl>
<input type="submit" value="submit"/>
</form>
action.php
<?php
$file = $_FILES['my_img'];
print('ファイル名(name):' . $file['name'] . '<br>'); //自動的にこれらの連想配列で格納されている
print('ファイルタイプ(type):' . $file['type'] . '<br>');
print('アップロードしたファイル(tmp_name):' . $file['tmp_name'] . '<br>');
print('エラー内容(error):' . $file['error'] . '<br>');
print('サイズ(size):' . $file['size'] . '<br>');
//ファイルアップロードの処理をする
$ext = substr($file['name'],-3);
if($ext == 'gif' || $ext == 'jpg' || $ext == 'png'){
$filePath = './user_img/' . $file['name']; //ここでは、パスは、元々のファイル名で保存しようとしている。しかし、下の通りmove_uploaded_fileでは$file["tmp_name"]なので注意
move_uploaded_file($file['tmp_name'] , $filePath); //「tmp_name」とは一時的にアップロードされたファイル名の事。
print('<img src="' . $filePath . '"/>');
}else{
print('%拡張子が.gif,.jpg,.pngのいずれかのファイルをアップロードしてください');
}
?>