在 HTML 中嵌套 PHP 个块
Nested PHP blocks in HTML
我有一个 table,在 MySQL 中有 10 行和 19 列。我试图在 HTML 中显示 table 的内容。为此,我写了下面的代码。
<?php
.
.
.
$con = mysqli_connect($host,$user,$password,$db);
$i="select * from data where user='".$usr."'";
$result=mysqli_query($con,$i);
$matrix = mysqli_fetch_all($result);
$row = $matrix[0];
$cell = $row[1];
echo $cell;
}
?>
<html>
<style>
table {
border:2px solid black;
width: 100%;
margin-left:0%;
}
tr, td {
border:1px solid black;
width: 1%;
font-size: 20px;
text-align:center;
}
</style>
<table>
<?php
$b=0;
while ($b<10) {
echo '
<tr>
<?php
$a=0;
while ($a<18) {
echo "
<td>
$row[$a]
</td>
";
$a++;
}
?>
</tr>
';
$b++;
}
?>
</table>
</html>
代码无效。我还阅读了一个类似的问题,有人回答用 ". ."
替换内部 <?p ?>
。我试过了,但没有得到预期的结果。
这段代码有什么问题?
您正在将一个开放的 php 标签放入 echo 中。相反,请将它们分开。
<table>
<?php
$b=0;
while ($b<10) {
echo '<tr>';
$a=0;
while ($a<18) {
echo "<td>$row[$a]</td>";
$a++;
}
echo '</tr>';
$b++;
}?>
</table>
在你的代码中,你有这个:
...
echo '
<tr>
<?php
$a=0;
...
... 有 3 个错误。首先,php 中单引号内的任何内容都不会被评估(解析)。因此,即使是这样的:echo 'hello $name';
也会吐出输出:hello $name
而 echo "hello $name";
(双引号)会解析变量 $name
并会吐出如下内容:hello Sam
.
其次,当您已经在 php 标签内时,您正试图打开一个新的 php 标签。
第三,这确实是这里的交易破坏者,您正在尝试在回显字符串内启动一个新的逻辑块(一个循环)。这不适用于单引号或双引号。如果您查看我的回答,我会关闭第一个回声以开始循环。
我有一个 table,在 MySQL 中有 10 行和 19 列。我试图在 HTML 中显示 table 的内容。为此,我写了下面的代码。
<?php
.
.
.
$con = mysqli_connect($host,$user,$password,$db);
$i="select * from data where user='".$usr."'";
$result=mysqli_query($con,$i);
$matrix = mysqli_fetch_all($result);
$row = $matrix[0];
$cell = $row[1];
echo $cell;
}
?>
<html>
<style>
table {
border:2px solid black;
width: 100%;
margin-left:0%;
}
tr, td {
border:1px solid black;
width: 1%;
font-size: 20px;
text-align:center;
}
</style>
<table>
<?php
$b=0;
while ($b<10) {
echo '
<tr>
<?php
$a=0;
while ($a<18) {
echo "
<td>
$row[$a]
</td>
";
$a++;
}
?>
</tr>
';
$b++;
}
?>
</table>
</html>
代码无效。我还阅读了一个类似的问题,有人回答用 ". ."
替换内部 <?p ?>
。我试过了,但没有得到预期的结果。
这段代码有什么问题?
您正在将一个开放的 php 标签放入 echo 中。相反,请将它们分开。
<table>
<?php
$b=0;
while ($b<10) {
echo '<tr>';
$a=0;
while ($a<18) {
echo "<td>$row[$a]</td>";
$a++;
}
echo '</tr>';
$b++;
}?>
</table>
在你的代码中,你有这个:
...
echo '
<tr>
<?php
$a=0;
...
... 有 3 个错误。首先,php 中单引号内的任何内容都不会被评估(解析)。因此,即使是这样的:echo 'hello $name';
也会吐出输出:hello $name
而 echo "hello $name";
(双引号)会解析变量 $name
并会吐出如下内容:hello Sam
.
其次,当您已经在 php 标签内时,您正试图打开一个新的 php 标签。
第三,这确实是这里的交易破坏者,您正在尝试在回显字符串内启动一个新的逻辑块(一个循环)。这不适用于单引号或双引号。如果您查看我的回答,我会关闭第一个回声以开始循环。