[英]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.