Echo php代码不会打印任何内容

时间:2014-05-28 10:09:06

标签: php html postgresql echo

我使用以下代码在表数据库中显示结果:

<table cellspacing="0" width="700">
    <tbody>
            <?php
            $sql = "SELECT id1, id2, id3, id4, id5 FROM table";
            $result = pg_query($db, $sql);
            if (pg_num_rows($result) != 0)
            {
                while($results_row = pg_fetch_row($result))
                {
                    echo '
                    <tr>
                        <td id="id1"> '.$results_row[1].'  </td>
                        <td id="id2"> '.$results_row[2].' </td>
                        <td id="id3"> '.$results_row[3].' </td>
                        <td id="id4"> '.$results_row[4].' </td>
                        <td id="id5"> ' if (.$results_row[5]. != "") 
                                      {'.$results_row[5].'}' </td>

                    </tr>
                    ';
                }
            }
            ?>
    </tbody>
</table>

显然我遇到“if”语句的问题,所以屏幕上没有任何内容......另外我想问为什么在$ results_row的两边都使用了点。是因为它是一个阵列吗?

5 个答案:

答案 0 :(得分:2)

你不能在echo里面做if语句。请将其更改为:,

. ($results_row[5] != "" ?  $results_row[5] : '') .

答案 1 :(得分:2)

你似乎对字符串连接感到非常困惑。字符串连接是指您加入两个或多个字符串时。举个例子:

$string1 = "<td id='id1'>";
$results_row[1] = "some string";
$string2 = "</td>";

$concatenated_string = $string1 ." ". $result_row ." ". $string2; 
echo $concatenated_string;

输出为:某个字符串

点(。)连接多个字符串以创建一个完整的字符串,换句话说,连接它们。

至于您的if,请查看while循环中的最后一个if。 你有:if (.$results_row[5]. != "")

虽然它应该是if ( $results_row[5] != "" ) 你有两个无用的点。

现在,在这里发布一个完整的代码只会让提问者变得懒惰,所以深入挖掘php字符串操作和

快乐的编码:)

答案 2 :(得分:0)

一种可能的解决方案:

echo '
    <tr>
        <td id="id1"> '.$results_row[1].'  </td>
        <td id="id2"> '.$results_row[2].' </td>
        <td id="id3"> '.$results_row[3].' </td>
        <td id="id4"> '.$results_row[4].' </td>
        <td id="id5"> '; 

    if($results_row[5] != "")  { echo $results_row[5]; }

echo '
        </td>
    </tr>';
  • 未测试

答案 3 :(得分:0)

。用于字符串concantation。你不能在字符串中有if条件。

您可以改为使用三元调制器:

while($results_row = pg_fetch_row($result))
            {
                echo '
                <tr>
                    <td id="id1"> '.$results_row[1].'  </td>
                    <td id="id2"> '.$results_row[2].' </td>
                    <td id="id3"> '.$results_row[3].' </td>
                    <td id="id4"> '.$results_row[4].' </td>
                    <td id="id5"> '.($results_row[5] != "")? $results_row[5] : ''.</td>

                </tr>
                ';
            }

或者重构你的循环以存在php模式:

while($results_row = pg_fetch_row($result)): ?>

                <tr>
                    <td id="id1"> <?php echo $results_row[1];?>  </td>
                    <td id="id2"> <?php echo$results_row[2];?> </td>
                    <td id="id3"> <?php echo$results_row[3];?> </td>
                    <td id="id4"> <?php echo$results_row[4];?> </td>
                    <td id="id5"> <?php if (.$results_row[5]. != ""){ echo $results_row[5];}?></td>

                </tr>

<?php endwhile;?>

答案 4 :(得分:0)

试试这个

<table cellspacing="0" width="700">
    <tbody>
            <?php
            $sql = "SELECT id1, id2, id3, id4, id5 FROM table";
            $result = pg_query($db, $sql);
            if (pg_num_rows($result) != 0)
            {
                while($results_row = pg_fetch_row($result))
                {
                    echo "
                    <tr>
                        <td id='id1'> ".$results_row[1]."  </td>
                        <td id="id2"> ".$results_row[2]." </td>
                        <td id="id3"> ".$results_row[3]." </td>
                        <td id="id4"> ".$results_row[4]." </td>
                        <td id="id5"> ".(($results_row[5] != "")?$results_row[5]:"")."</td>".
                    "</tr>";
                }
            }
            ?>
    </tbody>
</table>

希望,没错。