[前][次][番号順一覧][スレッド一覧]

mysql:13856

From: "やまもとのぶゆき" <"やまもとのぶゆき" <mr.number9@xxxxxxxxxx>>
Date: Thu, 5 Apr 2007 20:19:15 +0900
Subject: [mysql 13856] 特定のクエリを、全部の行で個別に実行させる方法について。

はじめまして、山本と申します。

テーブル内に
残り日数:「resttime」
有効期限:「kigen」
今日の日付:「kyou」
というdate方で指定した3つのフィールドがあり、それぞれアップデートで特定の日にちを登録出来るようにクエリを作成しています。行いたい作業は、有効期限から今日の日付を引き、残った日数を残り日数として「resttime」に登録したいと思っています。

「resttime」への登録を、全ての行で繰り返して個別に実行したいと思い


$kyou = date("y-m-d");
$sql = "update testing set kyou = '$kyou'";
mysql_query($sql);
echo "今日の日付を登録しました。";


$test1 = "select * from faq_table where kigen != 0000-00-00";
$result = mysql_query($test1);
$rows = mysql_num_rows($result);
$row = mysql_fetch_array($result);

if(rows != 0){
echo "取該当レコード無し";
}

else {
while ($row = mysql_fetch_array($result))
{
$inday = date($row["kyou"]);
$outday = date($row["kigen"] );
$date1=explode("-",$inday);
$date2=explode("-",$outday);
$from	= mktime(0,0,0,$date1[1],$date1[2],$date1[0]);
$to		=	mktime(0,0,0,$date2[1],$date2[2],$date2[0]);
$remains=($to - $from) / 86400;
$sql = "update faq_table set resttime = $remains where kigen != 0000-00-00";
mysql_query($sql);
echo "期限を登録";
}
}

というクエリを書いてみたのですが、一つ目のフィールドの更新を、全ての行に適用してしまい、思ったような処理結果になりません。


有効期限から今日の日付を引いて、残り日数を登録する。

「kigen」 - 「kyou」 =「resttime」

といったクエリを登録された全ての行で行うにはまったく別の処理を行わなければならないのでしょうか?

教えていただければと思います。

環境:windowsXP/apache2/PHP4.1/MYSQL4.12

[前][次][番号順一覧][スレッド一覧]

->   13856 2007-04-05 20:19 ["やまもとのぶゆき" <] 特定のクエリを、全部の行で個別に実行させる方法について。
     13857 2007-04-06 00:17 ┗[UNO Shintaro <uno@xx]                                       
     13858 2007-04-06 14:15  ┗["やまもとのぶゆき" <] Re: [解決]特定のクエリを、全部の行で個別に実行させる方法について。