PHP语法导致结果失败

时间:2017-08-04 03:32:29

标签: php

我目前正在使用PHP / SQL / AJAX编写虚拟评论/答案系统,由于我的编码风格语法,我的输出div出现了问题。

为简化代码,我刚刚包含了while循环:         //准备查询         $ sqlQuery =“SELECT *             来自问题             ORDER BY QuestionID DESC“;

    //exec query
    $result = mysql_query($sqlQuery) or die(mysql_error());

    //loop for multipule results
        while ($row = mysql_fetch_array($result))
    {
        echo '<div class="test" id="test_$questionID">'; //<--doesn't work
        //code here
        echo '</div>';

        echo "<div class='test' id='test_$questionID'>"; //<--works
        //code here
        echo '</div>';
    }

输出失败的代码行:

<div class="test" id="test_$questionID">

成功代码行的输出:

<div class='test' id='test_21'>

上面的代码在我使用“而不是'我的PHP样式启动回声时起作用是用'和内在的'开始每个外部”。

我应该将我的div回声更改为“还是有另一种方式?”

修改:感谢所有快速回复!

我被教导开始使用单打而不是双打而没有背后的实际原因。

我不知道冲突是由于文本被错误地解释而导致环境没有引起任何错误引导。将它们转换为@PressingOnAlways或将其更改为@santhy推荐。

我不是在问单打和双打之间的区别,因为我不知道那是错误的区域。我现在可以看到它是,但不确定我是否会知道要先找那个堆栈文章抱歉。

4 个答案:

答案 0 :(得分:2)

您需要使用双引号,但使用反斜杠转义内部双引号。例如:

 echo "<div class=\"test\" id=\"test_$questionID\">";

答案 1 :(得分:1)

试试这个:

替换echo '<div class="test" id="test_$questionID">'; //<--doesn't work行:

 <?php
 //exec query
    $result = mysql_query($sqlQuery) or die(mysql_error());

    //loop for multipule results
    while ($row = mysql_fetch_array($result))
    {
        echo '<div class="test" id="test_'. $questionID .'">'; //<--now work
        //code here
        echo '</div>';

        echo '<div class="test" id="test_'. $questionID .'">'; //<--now work
        //code here
        echo '</div>';
    }

答案 2 :(得分:1)

我们可以使用不同的方式,看看其中一些

while ($row = mysql_fetch_array($result))
{
    echo '<div class="test" id="test_'.$questionID.'">';
    //code here
    echo '</div>';

    echo "<div class='test' id='test_{$questionID}'>";
    //code here
    echo '</div>';

    echo "<div class=\"test\" id=\"test_{$questionID}\">";
    //code here
    echo '</div>';

    ?>
    <div class="test" id="test_<?=$questionID;?>"> <?php
    //code here
    ?>
    </div> <?php
}

答案 3 :(得分:0)

PHP不会在由单引号括起来的字符串中进行变量插值。您必须使用双引号。 此外,我在插入与附近字符组合的变量时进行了练习,为了清楚起见,我将变量括在括号中。

所以

 echo '<div class="test" id="test_$questionID">';

变为:

 echo "<div class=\"test\" id=\"test_{$questionID}\">";