簡體   English   中英

如何將行從Oracle DB正確插入HTML選擇框

[英]How to properly insert rows from Oracle DB into HTML select box

我正在從Oracle表中獲取行以將其放入選擇框,但是輸出與預期不符。 為了提供一些上下文,我正在查詢數據庫以給我4列所需的行,以將每一行放在下拉菜單中的一行上,但是相反,我將一行的每一列分別放在一行上。 我想獲得有關如何繼續將每一行及其4列放在一行上的幫助。

這是我從中檢索數據的oracle表:

create table TP2_ITEM (
    NO_ITEM number generated always as identity,
    NO_ENCAN number(9) not null,
    NO_ITEM_ENCAN_ITE number(9) not null,
    TITRE_ITE varchar2(50) not null,
    CHEMIN_PHOTO_ITE varchar2(200) default 'N/A',
    DESC_ITE varchar2(200) default 'N/A',
    DONATEUR_ITE varchar2(25) not null,
    MNT_VALEUR_ITE number(8,2) not null,
    MNT_PRIX_DEPART_ITE number(8,2) not null,
    MNT_INCREMENT_MINI_ITE number(8,2) not null,
    MNT_ACHAT_IMMEDIAT_ITE number(8,2) not null,
    EST_FERME_ITE number(1) default 0,
    EST_PAYE_ITE number(1) default 0,
    constraint PK_ITEM primary key(NO_ITEM),
    constraint FK_NO_ENCAN1 foreign key(NO_ENCAN)
    references TP2_ENCAN(NO_ENCAN) on delete cascade,
    constraint AK_ENCAN_ITEM unique(NO_ENCAN,NO_ITEM_ENCAN_ITE));

這是獲取我的行並將其放入選擇框的代碼:

<?php 
    $stid = oci_parse($conn, "select I.NO_ITEM, NO_ITEM_ENCAN_ITE, TITRE_ITE, 
                              MNT_VALEUR_ITE from TP2_ITEM I,TP2_ITEM_FAVORI F
                              where NOM_UTILISATEUR = '" .$nom_utilisateur. "' 
                              and F.NO_ITEM = I.NO_ITEM and NO_ENCAN = '" 
                              .implode(',', $no_encan_uti). "'";
    oci_execute($stid);
    echo "<select>";
    while (($row = oci_fetch_array($stid, OCI_ASSOC)) != false {
        foreach ($row as $item) {
            echo "<option>" .$item. "</option>;
        }
    }
    echo "</select>";
    oci_free_statement($Stid);
?>
```[![Output from my program][1]][1]

PS我運行程序時沒有任何錯誤,但是結果不是我所期望的,就像我之前描述的那樣。

** 這是我通過下拉菜單得到的結果的圖像

假設I.NO_ITEM是標識符,並且您想使用該字段作為選項的值,並將其他三個字段用作文本,則可以

while ($row = oci_fetch_array($stid, OCI_ASSOC) {

    $value = $row[0];
    $text = $row[1] . ' ' . $row[2] . ' ' . $row[3];

    echo "<option value='$value'>$text</option>"; 

}

您無需在條件中將值與false進行比較,足以將該值用作條件,如果為false則條件失敗。

如果您檢查發布的代碼,您還將看到在賦值周圍有兩組括號((while ($row = oci_fetch_array(...)) ,但在!=false條件之后和{因此您的代碼可能未運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM