我已经编写了代码,但是我无法按照自己的意愿进行编写,要求是使数据我必须仅通过一列来重复相同id所拥有的数据,尽管它与真实数据库是分开的(不同的列),所以这是我的数据
number pay_status card_status
021998877 UNPAID ACTIVE
021998875 NULL NOT ACTIVE
021998875 NULL ACTIVE
我想这样更改它:
number others
021998877 ACTIVE
021998877 UNPAID
021998876 NOT ACTIVE
021998875 ACTIVE
现在我可以得到这样的输出了:
021998877 ACTIVE UNPAID
这是我的输出代码
while ($row = oci_fetch_assoc($stid)) {
printf("<tr><td>%d</td><td>%s</td></tr>\n", $row['no'],
$row['card_status'],$row['pay_status'] );
我正在使用PHP和OracleSQL作为数据库。请帮助,谢谢
答案 0 :(得分:0)
所以我想你是说,如果card_status
不为NULL,则打印第二行。
在这种情况下,这样做非常简单。
while ($row = oci_fetch_assoc($stid)) {
printf("<tr><td>%d</td><td>%s</td></tr>\n",
$row['no'],
$row['pay_status'] );
if ( $row['card_status'] != 'NULL' ) {
printf("<tr><td>%d</td><td>%s</td></tr>\n",
$row['no'],
$row['card_status'] );
}
}
您可能需要根据结果集上实际的值来修改
NULL
的测试!
从您的评论中可以看出,该行中的3列比起初提到的要多。
要对结果集中的多列执行此操作,可以循环遍历结果集中的列,并将结果打印在输出中的许多行上,将NULL转换为字符串'NULL'
。
while ($row = oci_fetch_assoc($stid)) {
foreach ( $row as $colname => $value) {
if ( $colname == 'no' ) {
continue; // ignore the key field column
}
$value = $value == NULL ? 'NULL : $value
printf("<tr><td>%d</td><td>%s</td></tr>\n",
$row['no'],
$value );
}
}
}