私はここでMySQLの初心者です。A1からC22までの実際の行と列のプレートに似たテーブルを作成しようとしています(これらの座標も呼びます)。MySQLスクリプトの結果は、以下に示す配置のようになります(実際には、説明のために各ウェルがセルを占有しているテーブルをここに描画したいのですが、これで可能です)。
A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 A16 A17 A18 A19 A20 A21 A22
B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 B13 B14 B15 B16 B17 B18 B19 B20 B21 B22
C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15 C16 C17 C18 C19 C20 C21 C22
実際のデータベースには、A1〜A22、C1〜C22を含むデータが存在しますが、その場合は、上記の表のように斜体で表示する必要があります。A1からC22を含む配列($ arrと呼びます)を作成し、その配列をA1からA22およびC1からC22を含むデータベースの別の配列($ resultと呼びます)と比較しようとしました。以前array_intersect
は、$arrの要素とデータベースの配列との共通部分を見つけていました。存在する場合、$arrのその要素はイタリック体にする必要があります。
これが私のスクリプトの流れです。ごみだと知っていますが、やってみました。
<?php
$con = mysql_connect("localhost","root","1234");
mysql_select_db("inhouse_collection", $con) or die (mysql_error());
$result = mysql_query("SELECT * from ft7 ORDER BY SUBSTRING(Plate_Loc, 1, 1) ,SUBSTRING(Plate_Loc, 2)+0");
$arr=array("A1","A2","A3","A4","A5","A6","A7","A8","A9","A10","A11","A12","A13","A14","A15","A16","A17","A18","A19","A20","A21","A22","B1","B2","B3","B4","B5","B6","B7","B8","B9","B10","B11","B12","B13","B14","B15","B16","B17","B18","B19","B20","B21","B22","C1","C2","C3","C4","C5","C6","C7","C8","C9","C10","C11","C12","C13","C14","C15","C16","C17","C18","C19","C20","C21","C22");
echo "<table border='1'>";
echo "<tr>";
$z= 0;
for( $i=0; $arr[$z++]; $i = ($i+1)) {
if( array_intersect( $arr[$z-1], $result(Plate_Loc)) {
echo "<td><i>". $arr[$z-1] ."</i></td>";
}
else
echo "<td>" . $arr[$z-1] . "</td>";
if($i == 21)
echo "</tr><tr>";
}
echo "</tr>";
echo "</table>";
?>
</div>
</html>