Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP和OracleSQL将多列合并为一列,使其循环,但被id重复的行分割?_Php_Oracle_Oracle Call Interface - Fatal编程技术网

如何使用PHP和OracleSQL将多列合并为一列,使其循环,但被id重复的行分割?

如何使用PHP和OracleSQL将多列合并为一列,使其循环,但被id重复的行分割?,php,oracle,oracle-call-interface,Php,Oracle,Oracle Call Interface,我有代码,但我不能让它像我想要的,要求是使数据我必须重复的数据拥有相同的id只通过一列,虽然从真实的数据库它分开(不同的列),所以这是我的数据 number pay_status card_status 021998877 UNPAID ACTIVE 021998875 NULL NOT ACTIVE 021998875 NULL ACTIVE 我想这样改变它: number others 021998877 ACTIVE 021998877 UNPAID 02

我有代码,但我不能让它像我想要的,要求是使数据我必须重复的数据拥有相同的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'] );
while($row=oci\u fetch\u assoc($stid)){
printf(“%d%s\n”,$row['no'],
$row['card_status'],$row['pay_status'];

我在数据库中使用PHP和OracleSQL。请帮助,谢谢你,所以我想你是说,如果
卡的状态不为空,那么打印第二行

在这种情况下,这将非常简单

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'] );
    }
}

021998876未激活
需要是
021998875未激活
?不是吗?嗯…抱歉,不是这样的。我希望第3列的值以重复ID放置在第2列中,它不取决于数据库的内容我现在正在尝试该代码,但我是否希望让它检查任何列不为null,我如何可以?and如果它被发现为null,则给出字符串“null”或仅仅是“”?因此实际上您有3个以上的列,对吗?除了
$row['no']
可以包含NULL Right??是的,它绝对正确,因为不只是卡片状态包含NULL OK,我已经修改了我的答案是的,很好,它工作得很好,但我不知道如何从一列中确定是否为NULL,然后给出字符串“NULL”或只是“”,并将其导出到txt(如果可能的话)
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 );
        }

    }
}