2010年4月30日金曜日

[] operator not supported というエラーが出た

[] operator not supported
というエラーが出た。

ググッたら、
http://d.hatena.ne.jp/webpg/20100126/p1
こちらで教えてくださっていた方法があり、
やってみたらOKに。

配列にプッシュしていっていたのですが、
まず最初にその配列の初期化が必要だったのですね。
$arg=array();といったように。

それまでは出現していなかったので、何をやってしまったのか、まだ原因不明。
勉強だな。。

2010年4月26日月曜日

phpでcssの色設定を動的に変更したいのでメモ

phpでcssを動的に変更したいので、リンクメモです。
http://www.phppro.jp/news/384

適当なphpファイルにてcssファイルをつくるには、
header("Content-type: text/css");
を加えてCSSファイルに化けさせて、

<link rel="stylesheet" type="text/css"
 media="screen" href="style.php">
みたいに読み込ませる、と。

あとは、style.phpみたいなファイルの中で、
動的にデータベースから読み込ませた変数からスタイル指定してやれば良さそうだな、と。

実装、2,3日かかるかな。。

2010年4月23日金曜日

insert文ではカラム名はクオーテーションでくくらないのが吉。

MySQLでinsertする時に、
insert先のカラム名をシングルクオーテーションで囲っていたら登録されずエラーになっていました。
   $sql="insert into category ('cat_id','cat_name','sort_order') values ('dummy','$cat_name','$sort_order')";

なかなか理由が分からなかったのですが、シングルクオーテーションを外すと無事OKに。

   $sql="insert into category (cat_id,cat_name,sort_order) values ('dummy','$cat_name','$sort_order')";

なんとなくくくらないと心許ない気もしましたが、
これからはくくらない、と覚えておきます。。

printfで、引数を複数使ったり並び変えたりする際に$のエスケープが必要だった。

phpマニュアルに、printfで%s,%dなどに代入する引数の順番を変えたり、何度も代入したりできる便利な用法が載っていますが、エラーが出てうまく使えませんでした。 

$format 'The %2$s contains %1$d monkeys';printf($format$num$location);

結局問題は、""ダブルクオーテーションを使っていたので、その中で$記号をエスケープしていなかったことでした。
%1\$s,%2\$dなどとしてやると、無事順番入れ替えや同じ引数を複数回使ったりできました。
よかった。 

 ■追記:%1\$d と書くべきを、%\$1dと言う風に$を数字の前に書いてエラーも出てました。
 書き順注意。