カスタム関数が同じページで複数回呼び出され、同じ値が取得されます。

WBOY
リリース: 2016-06-13 12:59:24
オリジナル
788 人が閲覧しました

同じページでカスタム関数を複数回呼び出して同じ値を取得しました
関数 pici() をカスタマイズしました。その関数は、特定のシリアル番号の pi フィールドの値を取得し、 + 1 (このシリアル番号の記録がない場合、値は0+1=1)

次に、次の形式で複数のレコードをデータベースに順番に挿入します:
シリアル番号 pi 製品部品
1 1 1 ドアカバー..
1 2 ドアリーフ..
1 3 行..
2 1 ドアカバー..
2 2 ドアリーフ..
2 3 行..


しかし、PHPでは、あるページから呼び出すと毎回データベースを取得する必要があり、得られる値は1、2、3…となりますが、このように得られる値は全て1です

コードの一部を以下に添付しますので、ご質問にお答えください。よろしくお願いします









カスタム関数 pici() は次のとおりです

function pici(){<br />
$SQL = "select ifnull(max(pi)+1,'1') pi from bill where produce_no='预提交'"; <br />
$query=mysql_query($SQL);<br />
$rs=mysql_fetch_array($query);<br />
$svc=$rs[pi];<br />
return $svc;<br />
}  <br />
ログイン後にコピー


以下は pici() を呼び出し、データベースに 3 つのデータを挿入します
<br />
<br />
//门扇参数<br />
mysql_query("insert into bill (color,series,produce_no,pi,prod_type,stuff_id,z,val,amount,typein) values ('$_GET[color]','$_GET[series]','$produce_no','".pici()."','$prod_type','$norms_stuff_id','门扇型号','$_GET[model_1]','$men_shu','$_SESSION[login_id]')"); <br />
//门套参数<br />
mysql_query("insert into bill (color,produce_no,prod_type,pi,stuff_id,z,val,amount,typein) values ('$_GET[color2]','$produce_no','$prod_type','".pici()."','2','门套长','$mentaochang_shu','$mentao_shu_2','$_SESSION[login_id]')");   <br />
//线条规格<br />
mysql_query("insert into bill (color,produce_no,prod_type,pi,stuff_id,z,val,amount,typein) values ('$_GET[color3]','$produce_no','$prod_type','".pici()."','3','线条规格','$_GET[norms_3]','$xiantiao_shu','$_SESSION[login_id]')");<br />
ログイン後にコピー

-----解決策--------- ---- -------

この投稿は xuzuning によって最終編集されました: 2012-11-30 16:29:00 なぜ別の投稿を開くのでしょうか?過度に?

私はこう理解しています
シリアル番号 pi 製品コンポーネント generated_no
1 1 ドアカバー..
1 2 ドアリーフ..
1 つのヌル行.. 事前送信
それでは
1 3 行..
そういうプロセスですよね?
------解決策---------
または ifnull(max(pi)+1, ' 1') 質問
次のように考えてみましょう:
max(pi) が「コミット前」であるために null の場合、pi には値がありません
では、null + 1 は何に等しいでしょうか?
null に等しい場合は、「1」を返します
1 に等しい場合でも 1 を返します
そうですか?

円周率を増加させたい場合は、事前にコミットされていないレコードの数を数え、1
を追加する必要があります------解決策------ -- ---
1=2 になります
結果が出るのは意外ですか?


同僚に尋ねれば、どこで間違ったのか教えてくれるでしょう
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート