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

PhP4.2 mysql4 に関して

○testテーブル 下記の4つのカラムを作りました。
(オート番号) ,(名前) ,(番号), (数字)
------------------------
オート番号 名前 番号 数字
1 太郎 h001 5
2 花子 h002 1
3 さとる h003 3
-----------------------

01.php
------------------------
$query="SELECT 数字 FROM test WHERE 番号=h001";
$aaa=mysql_query($query);
print($aaa);
------------------------

?ブラウザで確認した際に。
01.phpでprint($aaa)とした場合。
5と表示されるのではないでしょうか?
5と表示されません。
間違っていますでしょうか?

?下記のスクリプトがどのような記述になるか教えてください。※mysql_query関数を使うと思います。

(1)mysql関数にて。(番号)h001を選択します。
(2)その一致したレコードの(数字)を選択します。
(3)選択した(数字)の値に1を足します。

※その結果1行目の(数字)は6になるように設定したいです。

PHPに詳しい方おねがいします。


●質問者: rrr3
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:AAA MySQL PHP print SELECT
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kn1967
●35ポイント

(1)$aaa には結果セットが入りますのでphp側でのさらなる抽出が必要です。

//
//SQL文
$query="SELECT 数字 FROM test WHERE 番号=h001";
//
//SQLをMySQLに投げて結果セットを受け取ります。
$aaa=mysql_query($query);
//
//結果セットの中の最初の行の最初のフィールドを得る
//行番号は1からではなくゼロから始まります
echo mysql_result($aaa,0);
//
//結果セットを開放してメモリを空ける
//スクリプト終了時に自動開放されますが、一応入れておきます。
mysql_free_result($aaa);

http://php.benscom.com/manual/ja/function.mysql-result.php


(2)+1したいのであればUPDATEを実施する必要があります。

//
//SQL文
$query="UPDATE test SET 数字 = 数字 + 1 WHERE 番号=h001";
//
//SQLを投げます。
if($aaa=mysql_query($query)) {
 echo "成功";
} else {
 echo "失敗";
}

http://q.hatena.ne.jp/1181541137 のSQL文を投げる場合も方法は同じです。

私は自称でも詳しいとは言えませんが、このあたりは入門書的な本やホームページであれば必ず載っていますので

『php MySQL 入門』といったようなキーワードでの検索も行ってみてくださいね。

◎質問者からの返答

大変わかりやすかったです。

ありがとうございます!!!


2 ● wizemperor
●35ポイント

mysql_query関数から返された結果にアクセスするためには、結果リソースをその他の関数に渡す必要があります。

http://jp.php.net/manual/ja/function.mysql-query.php


$query = "SELECT `数字` + 1 FROM `test` WHERE `番号`='h001'";
$result = mysql_query($query);
$aaa = $mysql_result($result, 0);
print($aaa);

PHPで計算する場合は、

$query = "SELECT `数字` FROM `test` WHERE `番号`='h001'";
$result = mysql_query($query);
$aaa = $mysql_result($result, 0) + 1;
print($aaa);

でどうでしょう?

関連質問


●質問をもっと探す●



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