前提・実現したいこと
DBには「faceicon1_1」~「faceicon2_3」といったカラムがあり、そこには0~4の値が入っています。DBへ接続し、各faceiconが1~4であればそれぞれの画像のURLを代入するという関数を作成したいのですが、どうもswitch文のところが思い通りの挙動になりません。
発生している問題・エラーメッセージ
エラーメッセージはないが、変数には欲しい値が入っていない。
var_dump $faceicon1
→
string(0) ""
該当のソースコード
php
1function getFaceicon($icon,$i){ 2 $dsn = "mysql:host=ip;dbname=dbname;"; 3 $user = "user_name"; 4 $password = "password "; 5 $dbh = new PDO($dsn,$user,$password); 6 7 $sql = "select * from table_name where id = 1"; 8 $stmt = $dbh->query($sql); 9 $res = $stmt->fetchAll(); 10 11 $faceicon = "faceicon".$i; 12 global $faceicon1,$faceicon2,$faceicon3,$faceicon4,$faceicon5,$faceicon6; 13 $$faceicon = ""; 14 15 switch($icon){ 16 case 0: 17 $$faceicon = ""; 18 break; 19 case 1: 20 $$faceicon = "~~/ico_base.png"; 21 break; 22 case 2: 23 $$faceicon = "~~/ico_fun.png"; 24 break; 25 case 3: 26 $$faceicon = "~~/ico_ang.png"; 27 break; 28 case 4: 29 $$faceicon = "~~/ico_sad.png"; 30 break; 31 } 32} 33getFaceicon('$res[0]["faceicon1_1"]',1); 34getFaceicon('$res[0]["faceicon1_2"]',2); 35getFaceicon('$res[0]["faceicon1_3"]',3); 36getFaceicon('$res[0]["faceicon2_1"]',4); 37getFaceicon('$res[0]["faceicon2_2"]',5); 38getFaceicon('$res[0]["faceicon2_3"]',6);
試したこと
switch($icon) の箇所をはじめから switch($res[0]["faceicon1_1"]) にしておくと
うまく取得できる。しかしコード量が多くなるため当方が求めている関数ではなくなる。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/08/26 11:17 編集
2018/08/26 12:35