我只是试图将数据库中的特定数据回显或打印成字符串(我希望这是正确的名称),这应该是一个非常简单的过程,因为我之前已经完成了。关键是每当用户将信息插入数据库时,该字符串回显或打印出插入的数据。
但是出于一些非常奇怪的原因,这次当我试图回应数据时,我确实得到了这个。
非常令人沮丧。从上图中可以看出,我尝试使用2种不同的方法来做变量和会话,但回声字面上只是将其打印出来。我之前已经这样做了所以我知道这是可能的。我只是有点迷失了我的意思是如何实现这一点,甚至更好的地方我出错了。我知道如何使用不同的编码方式来做到这一点,但我试图让所有东西都穿着制服(新手)。
$addon_name = $_SESSION['Add_On_OpName'];
mysqli_report(MYSQLI_REPORT_INDEX); //overrid a common php nonsense error
$prod_sel = $dbc->query("SELECT * FROM Add_On WHERE Add_On_OpName = '$addon_name'");
$prod_sel->data_seek(0);
while ($output = $prod_sel->fetch_assoc()) {
$prod_run .= $output['Add_On_OpName'] . $output['Prod_Name'] . $output['Add_On_Price'] . $output['Add_On_Select'] . '<br>';
$addon = $output['Add_On_OpName']; //echo out product name
$_SESSION['Prod_Name'] = $output['Prod_Name']; //echo out product desc
$_SESSION['Add_On_Price'] = $output['Add_On_Price']; //echo out price
echo '
<p>$addon . " " . $_SESSION["Add_On_Price"]; </p>
';
我的会话已启动且php文件已连接到数据库。 我也有错误处理,但没有发出任何错误消息。
答案 0 :(得分:2)
你必须这样做:
echo "<p>$addon ".$_SESSION["Add_On_Price"]."; </p>";
封装到'
中的字符串就像它一样呈现。
使用"
呈现包含变量的字符串。例如:
$a = 3;
$a++;
echo "the result is $a";
将导致the result is 4
。
另一方面,
echo 'the result is $a';
给出the result is $a
。
答案 1 :(得分:1)
正如documentation所指出的那样:
单引号¶指定字符串的最简单方法是将其括起来 用单引号(字符')。
Doued¶
如果字符串用双引号(“)括起来,PHP将解释 更多特殊字符的转义序列
尽量不要混合.. 如果在双引号内你有一个关联数组,你可以连续。
echo "string $variable". $array["index"];
或
echo "string $variable {$array["index"]}";
然后你的代码看起来像
$addon_name = $_SESSION['Add_On_OpName'];
mysqli_report(MYSQLI_REPORT_INDEX); //overrid a common php nonsense error
$prod_sel = $dbc->query("SELECT * FROM Add_On WHERE Add_On_OpName = '$addon_name'");
$prod_sel->data_seek(0);
while ($output = $prod_sel->fetch_assoc()) {
$prod_run .= $output['Add_On_OpName'] . $output['Prod_Name'] . $output['Add_On_Price'] . $output['Add_On_Select'] . '<br>';
$addon = $output['Add_On_OpName']; //echo out product name
$_SESSION['Prod_Name'] = $output['Prod_Name']; //echo out product desc
$_SESSION['Add_On_Price'] = $output['Add_On_Price']; //echo out price
echo "<p>$addon {$_SESSION["Add_On_Price"]}; </p>'";
}
很久以前 我从不使用双引号,因为它需要解析整个字符串以获取特殊符号。不过它。
尽量不要将单引号与双引号混用。为你的代码选择一个标准你不会发现任何差异,而不是容易编码和阅读而没有意外
答案 2 :(得分:0)
使用双引号
echo "<p>$addon $_SESSION['Add_On_Price']; </p>";
答案 3 :(得分:0)
你正在混合单引号和双引号。单引号不执行变量插值,所以当你写这个:
echo '... whatever including " char and $ sign';
PHP将直接打印内部的所有内容。
答案 4 :(得分:0)
你忘了一些'或'!
echo '<p>' . $addon . ' ' . $_SESSION["Add_On_Price"] . '</p>';