我如何在循环中回显来自mysql的两个不同记录

时间:2016-12-01 07:42:12

标签: php mysql

我试图在setTransients内回显两个不同的列,输出将在getTransients

这是我的代码:

instance

现在,代码为我提供了最多instance列的输出,但在此之后,我的代码while loop已不再有效

如何让<td>正常工作?

先谢谢你们

编辑:

我添加了while($row = mysql_fetch_array($stmt)){ $doc_number = $row['doc_number']; $place_of_issue = $row['place_of_issue']; $crew_rank_code = $row['crew_rank_code']; $full_name = $row['full_name']; $date_of_birth = $row['date_of_birth']; $place_of_birth = $row['place_of_birth']; $date_issue = $row['date_issue']; $date_expiry = $row['date_expiry']; $place_of_birth = $row['place_of_birth']; echo '<tr>'; echo "<td>$crew_rank_code</td>"; echo "<td>$full_name</td>"; echo "<td>$date_of_birth</td>"; echo "<td>$place_of_birth</td>"; echo "<td>". (($row['doc_type'] == '1') ? "$doc_number" : "") . "</td>"; echo "<td>". (($row['doc_type'] == '1') ? "$date_issue" : "") . "</td>"; echo "<td>". (($row['doc_type'] == '1') ? "$date_expiry" : "") . "</td>"; echo "<td>". (($row['doc_type'] == '1') ? "$place_of_issue" : "") . "</td>"; echo "<td>". (($row['doc_type'] == '2') ? "$doc_number" : "") . "</td>"; echo "<td>". (($row['doc_type'] == '2') ? "$date_issue" : "") . "</td>"; echo "<td>". (($row['doc_type'] == '2') ? "$date_expiry" : "") . "</td>"; echo "<td>". (($row['doc_type'] == '2') ? "$place_of_issue" : "") . "</td>"; echo '</tr>'; }

PASSPORT PLACE ISSUE

2 个答案:

答案 0 :(得分:0)

编辑:抱歉,我的上一个答案是错误的,你应该重写你的sql以最终得到类似的东西

echo "<td>". $row['doc_type'][1]['$doc_number'] . "</td>";

答案 1 :(得分:0)

三元运算符不一定需要()括号,只是关于代码可读性的第一个注释。继续,您是否通过对其内容进行简单输出来调试行doc_type实际包含的内容?你的条件:

echo '<td>' . (int)$row['doc_type'] == 2 ? $doc_number : '' . '</td>';

只返回$doc_number,又称。 $row['doc_number'],如果doc_type设置为 2 。此外,为此,请始终将数值检查为数据类型 int 。它将使用分隔符doc_type自动解析条件中的(int)

三元表达很精彩,但在你的情况下,你是在倾向于它。为了便于阅读,您可以简单地使用条件表达式和短手操作符来输出:

<?php
while($r = mysql_fetch_array($stmt)):

    $doc_number = $r['doc_number'];
    /* [...] */

    if( (int) $r['doc_type'] == 1 ): ?>

        <td> <?= $doc_number ?> </td>
        <!-- [...] -->

<?php else if( (int)$r['doc_type'] == 2 ): ?>

        <td> <?= $doc_XXXX ?> </td>
        <!-- [...] -->

<?php else:

        // debug console to check what `doc_type` value was if no condition was met
        echo '<script>console.log("[DOC_TYPE_DEBUG] ' . $r['doc_type'] . '");</script>';

    endif;
endwhile;
相关问题