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

PHP,SQLについて質問です。

データベースへ登録されている数字をPHP上でSELECT文で抽出して

それを変数に以下の様に格納しようとしました。

$abc=mysql_query("SELECT KOUNYUU_KINGAKU FROM YAHUOKU_KANRI WHERE KANRI_NO='".$_POST["kanri_no"]."'")

しかし、その値をechoで出力すると、返される値は Resource id #2

SQLの管理画面上でSELECT命令をするときちんとした値を返してくれるのですが、

PHP上で処理できません。

取り出した値を掛け算して処理をしようとしているのですが、

片方の値が100だったら

Resource id #2 を数字の2と処理し

100*2(Resource id #2)=200 となってしまい大変困っています。

これを解決するにはどうすればいいでしょうか?

どうしても自分が指定した値で処理したいのですが。。。

お手数をおかけしますが時間がある方おりましたらご回答よろしくお願いします。


●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:ABC echo PHP SELECT SQL
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● koujirou
●100ポイント

$abcをmysql_fetch_arrayで展開する必要があります。

http://au2.php.net/manual/ja/function.mysql-fetch-array.php

mysql_fetch_arrayによって展開される配列に対して処理を施してください。

デバッグするとわかりやすいと思います。

print_r(mysql_fetch_array($abc));

◎質問者からの返答

ご回答ありがとうございます。

自分で作成してみました。

$abc=mysql_query("SELECT KOUNYUU_KINGAKU FROM YAHUOKU_KANRI WHERE KANRI_NO='".$_POST["kanri_no"]."'")

while ($row = mysql_fetch_array($abc, MYSQL_ASSOC)) {

$kounyuu_kingaku=$row["KOUNYUU_KINGAKU"];

}

と記入して

echo $kounyuu_kingaku ;

としたのですが、

データが出力されず、$kounyuu_kingakuは空白になっていました。

この場合どのような原因が考えられるのでしょうか?

自分では何が原因かわかりませんでした。。。


2 ● kn1967
●100ポイント ベストアンサー

Resource id #番号 については以前から何度か躓いておられますが、

プログラミング作業を1週間ほど中断してでも入門系の本を、

最低1冊、出来れば2、3冊読破してください。急がば回れです。


プログラムの中でも、一度にやろうとすれば誰でも混乱します。

面倒ではありますが、ひとつひとつの作業をしっかりと行うように、

心がけましょう。こちらも、急がば回れです。


回れと言っても、それほど難しいことでは無く、echoやprint_rなど、

を使って、途中の値がどう変化していくのかを追っていくだけです。

アマから開発を生業にしている人までが使う基本中の基本テクニックです。

これからも自力での作成を目指すのであれば、絶対に忘れないでください。

$sql = "SELECT KOUNYUU_KINGAKU FROM YAHUOKU_KANRI WHERE KANRI_NO='" . $_POST["kanri_no"] . "'";
echo $sql . "<br />\n"; # SQL文が正しいかどうかをチェックするために表示させます。

$abc = mysql_query($sql);
echo mssql_num_rows($abc) . "<br />\n"; # 何レコード存在するのかを表示させます。

while ($row = mssql_fetch_assoc($abc)) {
 $kounyuu_kingaku=$row["KOUNYUU_KINGAKU"];
 echo $kounyuu_kingaku . "<br />\n"; # 金額を出力します。
}

動作確認のポイントは

・SQL文に kanri_no が正しく書き込まれているかをチェック。

・レコードがゼロだとすればデータが無いという事になるのでSQL文の見直しと

書き込むプログラムのほうを確認する必要が出てくる。

・レコードが1件以上なのに金額が出力されないとなれば

$sqlのフィールド名が間違っているなどになるので、

koujirou6218さんがコメントくださっているように print_r($row); を入れてみる。

一通り動作確認作業が済めばechoはコメントアウト(当面はコメントとして残す事!)

◎質問者からの返答

ご回答ありがとうございます。

動作確認のポイントまで詳しく書いて頂きとても参考・勉強になります。

本日順を追って行ってみたのですが

echo mssql_num_rows($abc) . "
\n";

を出力してみるとページが空白になってしまいます。

ちゃんと稼動するとheaderがきちんと起動してページ移動をするようになっているのですがこれは何か問題があるということでしょうか?

関連質問


●質問をもっと探す●



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