-1

2つのテーブルがあります。company_detailsおよびcompany_specials。各company_detailsには、複数のスペシャルを含めることができます。会社の詳細をhttp://eurothermwindows.com/ed/admin.phpに表示します

アクティブな列に0がある最初の行と4番目の行は、company_detailsからのものであり、以下の行は、company_specialsからのものです。

現在、このコードでは、そのテーブルのcompidで示されているように、company_details行を動的に変更できます。ただし、その下の行も動的に変更したいのですが、同じcompidを使用しているため、コードでそれらを分離する方法がわかりません。

以下のコードは、company_specials用に生成されたコードです。各行を一意に識別して変更できる方法が必要です。 http://pastebin.com/RAe9iwAP

誰かがガイダンスを提供してもらえますか?おそらく、company_specials内の各スペシャルを一意に識別するか、何らかのポインターを設定する必要があると思いますか?

4

2 に答える 2

0

あなたは正しい方向に進んでいるようです。実際、行を一意に識別する必要があります。company_specialsテーブルに一意のIDを追加して、それを使用できます。または、company_specialsテーブルの各行に固有の属性の他の組み合わせを使用します(たとえば、compidとspecdateの連結)。あなたの情報構造に合うものは何でも。スペシャルテーブルに一意のIDを追加することをお勧めします。

また、無効なデータが入力されないように、データベースシステムにその一意の制約を追加してください。

于 2012-10-30T13:48:20.403 に答える
0

データベーステーブルに一意のIDを追加し、各レコードの非表示のテキストフィールドを出力して、テーブルの起点とIDを示します。これにより、コードはどのテーブルでどの行が更新または削除されたかを知ることができます。新しいレコードの挿入は、各グループの最後に各タイプの空白のレコードを提供することで実現できます。したがって、各グループの最後に1つの空白のスペシャルレコードがあり、テーブルの最後に1つの空白の会社レコードがあります。

name ='comp [<?php echo $ comp_id?>] [<?php echo $ comp_field_name?>]'およびname ='spec [<?php echo $ spec_id?>の形式の各入力フィールドに一意の名前を付けます] [<?php echo $ spec_field_name?>]'これにより、テーブルが投稿されたときに、PHPは$comp$specの2つの配列を認識します。これらをループすることができます

foreach ($comp as $id=>$row)
{
}

各$行をループして、SQL更新または挿入ステートメントを作成します。

foreach ($row as $fld=>$val)
{
}
于 2012-10-30T14:08:15.960 に答える