私の問題はタイトルよりも少し広範囲ですが、私が何をしているのかを説明しようとします.
では、2 つのテーブルに移動したとしましょう。
テーブル名: ホスト
+------------+---------+
| host | hostid |
+------------+---------+
| EXAMPLE 1 | 10010 |
| EXAMPLE 2 | 10011 |
| EXAMPLE 3 | 10012 |
| EXAMPLE 4 | 10013 |
+------------+---------+
テーブル名: アイテム
+---------+--------------+---------+---------+
| itemid | itemname | value | hostid |
+---------+--------------+---------+---------+
| 27037 | examplename1 | DATA 1 | 10010 |
| 27038 | examplename2 | DATA 2 | 10011 |
| 27039 | examplename3 | DATA 3 | 10012 |
| 27040 | examplename4 | DATA 4 | 10013 |
| 27041 | examplename5 | DATA 5 | 10013 |
| 27042 | examplename6 | DATA 6 | 10013 |
| 27043 | examplename7 | DATA 7 | 10013 |
+---------+--------------+---------+---------+
次のコードを使用して、これらを Web ページに配置します。
<?php
$host = 'This is entered by user previously'
$sql = "SELECT hosts.host, items.itemname, items.value
FROM items
LEFT JOIN hosts ON hosts.hostid = items.hostid
WHERE hosts.host LIKE '$host'";
$Connect = @mysql_connect(DB_HOST, DB_USER, DB_PASSWORD)
or die("Couldn't connect to MySQL:<br>" . mysql_error() . "<br>" . mysql_errno());
$Db = @mysql_select_db(DB_DATABASE, $Connect)
or die("Couldn't select database:<br>" . mysql_error(). "<br>" . mysql_errno());
$result = @mysql_query($sql,$Connect)
or die("Couldn't execute query:<br>" . mysql_error(). "<br>" . mysql_errno());
mysql_select_db(DB_DATABASE);
$num_rows = mysql_num_rows($result);
print "<table width=1000px border=1>\n";
$cols = 0;
while ($get_info = mysql_fetch_assoc($result)){
if($cols == 0)
{
$cols = 1;
print "<tr>";
print "<th>Host</th>";
print "<th>Item Name</th>";
print "<th>Item Value</th>";
print "<tr>\n";
}
print "<tr>\n";
foreach ($get_info as $field)
print "\t<td><font face=arial size=3/>$field</font></td>\n";
print "</tr>\n";
}
print "</table>\n";
?>
ユーザーが「EXAMPLE 4」と入力した場合、結果のテーブルは次のようになります。
+------------+--------------+------------+
| Host | Item Name | Item Value |
+------------+--------------+------------+
| EXAMPLE 4 | examplename4 | DATA 4 |
| EXAMPLE 4 | examplename5 | DATA 5 |
| EXAMPLE 4 | examplename6 | DATA 6 |
| EXAMPLE 4 | examplename7 | DATA 7 |
+------------+--------------+------------+
結果のテーブルが各行の横にチェックボックス付きで表示されるように、これを調整する必要があります。次のページに移動したときに変数を設定できるように、これらのチェックボックスを各行の「itemid」(表には表示されていません) に対応させる必要があります。たとえば、次のページで 'DATA 4' と 'DATA 7' にチェックを入れると、それらは値 '27040' と '27043' を持つ配列の一部になります。
言葉遣いが悪い場合は申し訳ありませんが、プロセスに頭を悩ませています。