0

IMGPOSX、IMGPOSY、および IDIMG という列を持つ Oracle のテーブルがあります。テーブルの各行には異なる XY 値の位置があり、この値の魔女を識別する ID が指定された ID に対応しています。

例えば:IDIMG = image1 > IMGPOSX = 20 IMGPOSY = 50

この値を使用して、html マップ イメージを作成し、指定された ID でイメージを読み込み、IMGPOSX および IMGPOSY の結果を margin-top および margin-left css プロパティに配置します。

行の最初の行の値を取得する方法の例をいくつか見つけましたが、別の行を取得する方法がわかりません(テーブルには12行あります)

次のコードでは、各列 (IMGPOSX、IMGPOSY、および IDIMG) の最初の行を取得しますが、テーブルの残りの行を取得する方法がわかりません。row1[1] を配置すると、パーサーでエラーが発生します。

<?php

$conn = oci_connect('TEST', 'TEST', 'ORCL');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT IMGPOSX, IMGPOSY, IDIMG FROM TESTTABLE ');

if(oci_execute($stid))

{
$row=oci_fetch_row($stid) ;

"<table border='2'>";

print"<tr><td><p>posx: </td><td>$row[0] </td></tr>";
print"<tr><td>posy: </td><td>$row[1] </td></tr>";
print"<tr><td>idimg: </td><td>$row[2] </td></tr>";

print"</table></br>";   

}

oci_free_statement($stid);
oci_close($conn);

?>

また、フェッチの結果を idimg でフィルタリングするのも好きです。たとえば、「IDIMG='image2'.

4

1 に答える 1

0

大まかな例は、クエリに WHERE 句を追加することです。

$id = 'image2';
$stid = oci_parse($conn, "SELECT IMGPOSX, IMGPOSY, IDIMG FROM TESTTABLE WHERE IMDIMG = $id;");

または、同じクエリを使用して、IF でフィルター処理できます。

if ($row[2] == $id) {
//show
}

コードの前の文は、複数の行が必要になる可能性があることを示しているため、フィルタリングしていない場合は、より多くの行を受け取ることになります。それらを取得するには、適切なフェッチが必要です。現在の fetch_row の場合、すべての値を含む配列を受け取るために fetch_array が必要になる場合があります。

名前から列にアクセスできるように、oci_fetch_assoc http://php.net/manual/en/function.oci-fetch-assoc.phpをお勧めします。また、フィルタリングは名前付き列を使用します。

if ($row['IDIMG'] == $id) {
//show
}

関数の説明の次の文を念頭に置いてください。 This function is typically called in a loop until it returns FALSE

次のようなものが必要です。

<?php
//all the code here
// ...
// ...
?>
    <table border="2">
<?php while ($row = oci_fetch_assoc($stid)): ?>
    <tr><td><p>posx:</p></td><td><?=$row['IMGPOSX'];?></td></tr>
    <tr><td><p>posy:</p></td><td><?=$row['IMGPOSY'];?></td></tr>
    <tr><td><p>idimg:</p></td><td><?=$row['IDIMG'];?></td></tr>
<?php endwhile; ?>
    </table><br />
<?php
oci_free_statement($stid);
oci_close($conn);
?>
于 2013-11-07T14:13:04.133 に答える