【问题标题】:Store oracle row value on php variable在 php 变量上存储 oracle 行值
【发布时间】:2013-11-07 14:10:00
【问题描述】:

我在 Oracle 中有一个包含以下列的表:IMGPOSX、IMGPOSY 和 IDIMG。表格的每一行都有不同的 X Y 值位置和一个 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' 的 IMGPOSX 和 IMGPOSY。

【问题讨论】:

    标签: php sql oracle


    【解决方案1】:

    一个粗略的例子是在查询中附加一个 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);
    ?>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 2013-06-02
      • 2012-09-25
      • 2016-04-23
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      相关资源
      最近更新 更多