-1

MySQL で大規模なリレーショナル データベースを作成し、PHP を使用してフォームを処理しています。MySQL テーブルには次のフィールドがあります。

  • サーバー名
  • Location_id
  • 場所_連絡先
  • app_contact_O
  • app_contact_Contact
  • OS_id
  • Database_id
  • Vendor_id
  • 最後の更新
  • updated_by

サーバー名ごとに、複数の場所の連絡先、app_contact_O、app_contact_Contacts、および Database_id が存在する可能性があります。

複数のフィールドは、複数の選択肢を選択できるドロップダウン メニューから入力されます。

複数のフィールドをデータベースに取得するにはどうすればよいですか。さまざまなソリューションを試しましたが、うまくいくものは見つかりませんでした。

foreach() ループを使用して単一のドロップダウン メニューから MySQL に結果を取得できますが、倍数の助けが必要です。

このページの私のコードは 438 行の長さのようです...投稿することはコミュニティにとって有益ではないと思います。

==========================
わかりました、フォームの短縮版を使用して明確にしましょう:

私は次のフォームを持っています:

    <form action="" method="post">
    Server Name: <input type="text" name="Server_Name" size="40" /><br />

    Location: <select name="servLocation">
    <option value="none" selected="selected">Select Location</option>
    <?php
    $getLocation=mysql_query("SELECT * FROM locationTable ORDER BY Location");
    while($r=mysql_fetch_array($getLocation)){
    extract($r);
    echo "<option value='" . $Location_id . "'>" . $Location . ": " . $City . ", " . $Country . ", " . $GSL_id . "</option>";
    }
    ?>
    </select>
    <br />

    Location Contact: 
    <select name="servLocCon[]" multiple='multiple' size="3">
    <option value="none" selected="selected">Select Contact</option>
    <?php
    $getContacts=mysql_query("SELECT * FROM hpatt.contacts ORDER BY Last_Name");
    while($r=mysql_fetch_array($getContacts)){
    extract($r);
    echo "<option value='" . $Contact_id . "'>" . $Last_Name . ", " . $First_Name . "</option>";
    }
    ?>
    </select><br />

    Application Contact:
    <select name="servAppCon[]" multiple='multiple' size="3">
    <option value="none" selected="selected">Select Contact</option>
    <?php
    $getContactsB=mysql_query("SELECT * FROM hpatt.contacts ORDER BY Last_Name");
    while($r=mysql_fetch_array($getContactsB)){
    extract($r);
    echo "<option value='" . $Contact_id . "'>" . $Last_Name . ", " . $First_Name . "</option>";
    }
    ?>
    </select><br />

    <input type="submit" name="submit" value="Submit" />
    </form>

さて、私がやりたいことは、ユーザーが 1 つのサーバーに対して複数の場所の連絡先とアプリケーションの連絡先を選択できるようにすることです。これは、サイズと複数の属性を使用して実現されます。次に、別のレコードを MySQL テーブルに挿入して、次のように読み取ります。

レコード 1: サーバー A、ウェンデル ホームズ、ジョン スミス

レコード 2: ServerA、Wendy Martin、John Smith

レコード 3: ServerA、Wendel Holmes、Juanita Gomez

レコード 4: ServerA、Wendy Martin、John Smith

あらゆる可能性を処理し、抽出できるようにします。レコードを個別に作成することで手動でこれを行うことができますが、PHP はこれを行うことができるはずです。

4

2 に答える 2

0

たとえば、複数の値を持つ場所フィールドの場合、同じ名前(場所: id、名前)のテーブルと場所_サーバー (id_場所、id_サーバー)という名前の別のテーブルを作成できます。

于 2012-05-30T15:55:27.717 に答える
0

私があなたに従っているかどうかはわかりませんが、テーブルがあったとしましょう:

SID  Server Name
1    S1
2    S2
3    S3

次のような外部参照テーブルを作成します。

SID   Prop1   Prop2 ...  PropX
1      1        2          11
1      2        5          12
2      1        1          33
3      4        2          4

この場合、SID は外部参照テーブルで複数回使用されます。

各 prop は、実際には他のテーブルへの ID です。

次に、xref テーブルに複数列キーを作成して、行の重複を防ぎます。

単一選択と同様の方法で、複数選択のすべての POST/GET 結果を取得できます。

たとえば、次のように使用しますserverLocCon[]

$sLocCon = $_POST['servLocCon'];

foreach ($sLocCon as $item) 
...
于 2012-05-30T15:41:14.573 に答える