ホームページ > バックエンド開発 > PHPチュートリアル > 値を入力した場合の効果を調べる

値を入力した場合の効果を調べる

WBOY
リリース: 2016-06-23 14:14:40
オリジナル
984 人が閲覧しました

この投稿は、lazygc520 によって最終編集されました: 2013-06-28 17:35:24

写真は次のとおりです:


たとえば、合計数量が 240 個の場合、写真に示されているような効果は達成できますか? 、最初の紫色のユニット セルは 120、2 番目のセルは 240-120=120 です。
画像内の関係は以下の通りです:

1つのストックノが複数のラインに対応しており、画像内には2つのラインがあります。ページが複数の在庫番号に対応する場合、$arrs に対応する合計カウントが最初の在庫番号に割り当てられたカウント値から削除され、残りの値が次の在庫番号に対応する紫色のボックス内の値に割り当てられます。

表示されるコードは次のとおりです:
<?php	$sql = "select DISTINCT b.packageno,a.stock_no from `stock_detail` as a,`kw_manage` as b where a.stock_no = '".$stockno[$j-1]."' and a.cust_no = replace( b.cust_no, ' ', '' )";//	echo $sql.'<br />';	$result = mysql_query($sql);	$res = array(); 	while($row = mysql_fetch_array($result,MYSQL_ASSOC))	{		$sql2 = "select lotno,count(lotno) from `vp_barcode_2d_y` where packageno = '".$row['packageno']."' group by lotno,packageno order by lotno asc";//		echo $sql2.'<br />';		$result2 = mysql_query($sql2);		$var = array();		while($row2 = mysql_fetch_array($result2,MYSQL_NUM))		{			if(isset($res[$row2[0]])) 			$res[$row2[0]]['count'] += $row2[1];			else 			$res[$row2[0]] = array('lotno'=>$row2[0],'count'=>$row2[1]);		}	}	ksort($res);	$arrs = array();	foreach($res as $v2)	{		$arrs[] = $v2;	}	print_r($arrs);//Array ( [0] => Array ( [lotno] => 3207 [count] => 240 ) ) 		$sql4 = "select arr_time,c_type,cust_no,snp,mount,mount*snp as m_total from `".$t."` where stock_no = '".$stockno[$j-1]."'";	$result4 = mysql_query($sql4);	$a = array();	while($var = mysql_fetch_array($result4,MYSQL_NUM))	{		$a[] = $var;	}foreach($a as $k=>$v)//显示一个stockno对应的两行结果{	echo '	<tr height="56" style="height: 42.0pt">		<td>		'.($k+1).'</td>';?>		<td>		<?php			echo $v['0'];		?></td>		<td>		<?php			echo $v['1'];		?></td>		<td>		<?php			echo $v['2'];		?></td>		<td>		<?php			$sql = "select type from `kw_info` where cust_no = '".$v['2']."'";			$result = mysql_query($sql);			$row = mysql_fetch_array($result,MYSQL_ASSOC);			echo $row['type'];		?></td>		<td>		<?php			echo $v['3'];		?></td>		<td>		<?php			echo $v['4'];		?></td>		<td>		<?php			if(($arr_mount[$j-1]['mount']%$kx) != 0 )				echo $kx-($arr_mount[$j-1]['mount']%$kx);			else				echo '0';		?></td>		<td>		<?php			echo $v['5'];			echo '</td>';		echo '<td>';  			//需加入的代码部分;		echo '</td>';		echo '		<td>		 </td>		<td>		 </td>		<td> </td>	</tr>';}?>
ログイン後にコピー


ディスカッションに返信 (解決策)

解決できない場合は簡単ですか?

ループが多すぎてめまいがします。

現時点では、smarty はその強力な側面を示しています

オンラインおよびその他のソリューション。 。 。

説明していないのはわかりにくいですか?なぜ誰も返信しなかったのですか?

論理構造:

ページ内の Stockno は複数の値に対応し、その値はコード内の対応する $stockno[$j-1] です

各 Stockno が対応する値を持つ場合、それは、ページ内の対応する行に対応しますデータベース。コードの 29 行目を参照してください。

対応する行の部品番号 (cust_no) の合計数は、コードの 26 行目にあります。 (1行目から26行目は部品番号の総数を求めます)

次のステップは部品番号の数の分布です。私が聞きたいのはこの分布の問題です。

Stockno が対応する値の場合、その値に対応する結果が表示されます (たとえば、図の 2 行の結果)。この 2 行の結果の部品番号の数は、それぞれ 120 と 135 です。コードの 36 行目 ['5']; の foreach ループ内の $v に追加すると、この部品番号の合計数量が 240 であることがわかります。コード 26 行目を参照してください。

対応する部品番号の合計数量が 360 であると仮定すると、対応する部品番号の数量が 120 の対応する紫色のボックスには 3207 * 120 が入力され、数量が 135 の対応する紫色のボックスには入力されます。 3207 * 135 と残りの値は、在庫番号の次の値に取り込まれます。これを達成するにはどうすればよいでしょうか?

ありがとうございます!

出力に参加するデータは個別に処理されます
それらの対応関係を確認するにはどうすればよいですか?

出力に参加するデータは個別に処理されます
それらの対応関係を確認するにはどうすればよいですか?

Stockno と cust_no (部品番号) はテーブル `stock_detail` を通じて対応しており、1 対 1 または 1 対多の関係を持ちます。

在庫テーブル `kw_manage` を通じて cust_no の数量 (部品番号) を取得し、cust_no に対応する総在庫を取得します。

次に、cust_no の総在庫数に基づいて、対応する在庫番号に対応する cust_no (部品番号) の数量を割り当てます。

テストデータを投稿したほうがいいです!

テストデータを投稿したほうがいいです!
コードの 26 行目
print_r($arrs);//cust_no に対応する総在庫を取得します

Array ( [0] => Array ( [lotno] => 3207 [count] => 240 ) )

コードの 34 行目
print_r($a);//結果は、stockno と cust_no の間の対応する関係であり、この場合は 1 対 2 の関係です

Array([0]=>Array( [0]= >2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>8 [5]=> 120) [1 ]=>配列([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4] =>9 [5]=>135)

この例では、2 番目の項目の結果が満たされない可能性があります (これは実際の状況では起こりそうにありません。満たされている場合は、数量が満たされていないことを示すプロンプトが表示されます)十分)、次にアイテムの 3207 * 120 (240-最初の 120)、そして 3207 * 120
3209 * 15 などの他の状況がそれを補うために使用されます。

#9的数据不够全面,我重新贴一个。

代码第26行
print_r($arrs);//求得该cust_no对应的库存总量

Array ( [0] => Array ( [lotno] => 3207 [count] => 240 ) [1] => Array ( [lotno] => 3209 [count] => 165 ) [2] => Array ( [lotno] => 3210 [count] => 360 ))

代码第34行
print_r($a);//结果是stockno和cust_no的对应关系,此例中是1对2的关系

当stockno = 1时:
Array([0]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>8 [5]=>120) [1]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>9 [5]=>135))

当stockno = 2时:
Array([0]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>10 [5]=>150) [1]=>Array([0]=>2013-05-13 09:00:00 [1]=>L11K [2]=>23703EX80A [3]=>15 [4]=>10 [5]=>150))

....依次类推

应该得到的结果:
当stockno = 1时:

紫色第一行: 3207 * 120

紫色第二行: 3207 * 120
3209 * 15

当stockno = 2时:

紫色第一行: 3209 * 150

紫色第二行: 3210 * 150

....依次类推至stockno = n 。

像这样的结果。

这样?

$arrs = Array (  0 => Array ( 'lotno' => 3207, 'count' => 240 ),  1 => Array ( 'lotno' => 3209, 'count' => 165 ),  2 => Array ( 'lotno' => 3210, 'count' => 360 ),);$a = Array(  0 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 8, 5 => 120),  1 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 9, 5 => 135),  2 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),  3 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
两组数据不对等,如何知道 stockno 谁是谁?

这样?

$arrs = Array (  0 => Array ( 'lotno' => 3207, 'count' => 240 ),  1 => Array ( 'lotno' => 3209, 'count' => 165 ),  2 => Array ( 'lotno' => 3210, 'count' => 360 ),);$a = Array(  0 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 8, 5 => 120),  1 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 9, 5 => 135),  2 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),  3 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
两组数据不对等,如何知道 stockno 谁是谁?

原来的情况是这样的,
$stockno = explode(","$_GET['stockno']);
for($j = 0;$j< count($stockno);$j++)
{
//将1#代码放入此循环中;
}

能不能把数据看成这样?

$arrs = Array (  0 => Array ( 'lotno' => 3207, 'count' => 240 ),  1 => Array ( 'lotno' => 3209, 'count' => 165 ),  2 => Array ( 'lotno' => 3210, 'count' => 360 ),);$a = Array(stockno1 =>Array(  0 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 8, 5 => 120))  1 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 9, 5 => 135))), Array(stockno2 =>Array(0 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),  1 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150)));
ログイン後にコピー


这样?

$arrs = Array (  0 => Array ( 'lotno' => 3207, 'count' => 240 ),  1 => Array ( 'lotno' => 3209, 'count' => 165 ),  2 => Array ( 'lotno' => 3210, 'count' => 360 ),);$a = Array(  0 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 8, 5 => 120),  1 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4 => 9, 5 => 135),  2 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),  3 => Array(0 => '2013-05-13 09:00:00', 1 => 'L11K', 2 => '23703EX80A', 3 => 15, 4=> 10, 5 => 150),);
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
两组数据不对等,如何知道 stockno 谁是谁?

或者这样:
$arrs = Array (  0 => Array ( 'lotno' => 3207, 'count' => 240 ),  1 => Array ( 'lotno' => 3209, 'count' => 165 ),  2 => Array ( 'lotno' => 3210, 'count' => 360 ),);$a = Array(stockno1 =>Array(0 => Array(5 => 120),1 => Array(5 => 135)), Array(stockno2 =>Array(0 => Array(5 => 150),1 => Array(5 => 150)));
ログイン後にコピー

贴错了,

$arrs = Array (  0 => Array ( 'lotno' => 3207, 'count' => 240 ),  1 => Array ( 'lotno' => 3209, 'count' => 165 ),  2 => Array ( 'lotno' => 3210, 'count' => 360 ),);$a = Array(stockno1 =>Array(0 => Array(5 => 120),1 => Array(5 => 135)),stockno2 =>Array(0 => Array(5 => 150),1 => Array(5 => 150)));
ログイン後にコピー

你根据什么能把这两组数据关联在一起?

比如现在读到 $a['stockno1'][1][5],如何知道对应的应该是 $arrs[0] 还是 $arrs[1] 或者是 $arrs[2] ?

你根据什么能把这两组数据关联在一起?

比如现在读到 $a['stockno1'][1][5],如何知道对应的应该是 $arrs[0] 还是 $arrs[1] 或者是 $arrs[2] ?

程序中是这样关联的。首先得到stockno的值,再求得对应的cust_no,通过cust_no求得对应的lotno的总数量。
代码2-26行有体现。至于怎么将$arrs和$a相关联,能不能这样,将求得的stockno的结果排序,然后将$arrs按排序的结果赋给$a?

stockno的排序代码:

$sql = "select count(*) from (select stock_no,count(stock_no) from `".$t."` where adress like 'A%' group by stock_no) as temp";$result = mysql_query($sql);$row = mysql_fetch_array($result);$sql2 = "SELECT stock_no FROM `stock_detail` WHERE adress LIKE 'A%' GROUP BY stock_no ORDER BY adress, arr_time, c_type ASC";$result2 = mysql_query($sql2);$var = array();while($row1 = mysql_fetch_array($result2,MYSQL_NUM)){	$var[] = $row1;}for($x=0;$x<=$row['0'];$x++){	if($var[$x][0] == $stockno)	echo ($x+1);}
ログイン後にコピー

问题在于你的 $arrs 和 $a 分别来自不关联的两个表,所以你需要找出两者的联系
因为你实际输出的是 $a, 所以你应该在取得 $a 后再去求取与之对应的 $arrs
这样合乎常理,也就很容易输出了

问题在于你的 $arrs 和 $a 分别来自不关联的两个表,所以你需要找出两者的联系
因为你实际输出的是 $a, 所以你应该在取得 $a 后再去求取与之对应的 $arrs
这样合乎常理,也就很容易输出了
好的。我明天先试试。谢谢答复。

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