人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPとMySQLについて教えてください。
dfirstを使用してテーブル内のデータを取得したいのですが上手くいきません。

下記のようなテーブルを作成しました。。
テーブル名:tblitem

int(11) varchar(4) varchar(50)
----------------------------------------------------
no itemno itemname
----------------------------------------------------
1 a1 アルミ
2 a2 タイル
3 a3 ガラス
4 a4 カーテン

下記のソースでprint $name;とするとタイルをいう結果を得たいのですが上手くいきません。
$test="a2";
$name = dfirst("itemname", "tblitem", "itemno=$test", True);


下記の場合だとタイルと表示します。
$test="2";
$name = dfirst("itemname", "tblitem", "no=$test", True);

itemnoがvarchar型だからでしょうか?
解決策をご存知でしたら教えて頂きたいと思います。
もしdfirst以外でもやり方があれば教えて頂きたいと思います。
よろしくお願いします。


●質問者: moks
●カテゴリ:インターネット ウェブ制作
✍キーワード:A1 A3 MySQL name PHP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●35ポイント

変数を使っていきなり作ると解り辛くないですか?

$name = dfirst("itemname", "tblitem", "itemno=a2", True);

$name = dfirst("itemname", "tblitem", "itemno='a2'", True);

ではどうちがうかといったテストをしてみてください。

◎質問者からの返答

回答ありがとうございます。再度検証してみます。


2 ● fonya3
●200ポイント ベストアンサー

PHPのマニュアル ( http://www.php.net/manual/ja/ ) に

dfirstという関数が見あたらなかったのですが、以下のソースで

どうでしょうか。

// DB接続に関する変数
$mysql_host = "host_name";
$mysql_user = "user_name";
$mysql_pass = "password";
// データベースに接続
$conn = mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die('Could not connect: ' . mysql_error());
mysql_select_db($mysql_db) or die('Could not select database');
// SQLクエリを投入する
$sql = "SELECT itemname FROM tblitem WHERE itemno='a2'";
$result = mysql_query($sql) or die('Query failed: ' . mysql_error());
// SQLの結果をループして処理する
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
 foreach ($line as $key=>$val) {
 if($key == 'itemname'){
 $name = $val;
 }
 }
}
// 結果セットを開放する
mysql_free_result($result);
// 接続を閉じる
mysql_close($conn);
◎質問者からの返答

回答ありがとうございます。教えて頂いたソースで希望の結果を得ることが出来ました。

わざわざソースまで書いて頂き助かりました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ