首先,我是一个菜鸟,我可能会问一些容易做的事情。 我将这个小模板保存在template2.html中:
<table border=”0″> <tr>
<td align=”center”><!-- IDCAT --></td>
<td><!-- CATEGORIA --></td>
</tr>
</table>
php mysql3.php中的这个数据库连接文件:
<?php
$connessione = @mysqli_connect("localhost","root","","tecwebdb") or die("La connessione al Database è fallita !");
$sql = "SELECT ID_Categoria,Nome FROM categoria";
$query=@mysqli_query($connessione, $sql) or die("Esecuzione Query fallita !");
?>
并且php代码可以在这个文件中运行test.php:
<?php
include("mysql3.php");
$file_content = implode("",file("template2.html"));
while($ris=mysqli_fetch_array($query)) {
$output = preg_replace("<!-– IDCAT -->", $ris["ID_Categoria"], $file_content);
$output = preg_replace("<!–- CATEGORIA -->", $ris["Nome"], $output);
echo $output;
}
@mysqli_close($connessione);
?>
问题是查询结果没有显示,可能是我错过了某些内容,如何让它工作?
答案 0 :(得分:1)
它不起作用,因为您的Regx存在缺陷(正如我在评论中所说)
$output = preg_replace("<!-– IDCAT -->", $ris["ID_Categoria"], $file_content);
尝试:
$output = preg_replace("/<!-– IDCAT -->/", $ris["ID_Categoria"], $file_content);
你基本上错过了Regx开头和结尾的分隔符/
,我想PHP也会发出警告。如果您在ini_set('display_errors', 1)
上显示错误,那么您会看到。
或者只使用str_replace()
,这是更适合在这种情况下使用的函数,IMO。
$output = str_replace("<!-– IDCAT -->", $ris["ID_Categoria"], $file_content);
你可以在这里试试
https://regex101.com/r/ObyMbZ/1
但请注意,他们会自动为您分配分隔符,这就是您所缺少的。
更新:更改此
while($ris=mysqli_fetch_array($query)) {
到
while($ris=mysqli_fetch_assoc($query)) {
因此,您的数组将包含密钥http://php.net/manual/en/mysqli-result.fetch-array.php
答案 1 :(得分:0)
你有点太复杂了。
您可以在1个文件中完成所有操作(例如test.php
),如下所示:
<?php
//connect to DB
$connessione = @mysqli_connect("localhost","root","","tecwebdb") or die("La connessione al Database è fallita !");
$sql = "SELECT ID_Categoria,Nome FROM categoria";
$query=@mysqli_query($connessione, $sql) or die("Esecuzione Query fallita !");
//render the table
?>
<table border=”0″>
<?php
while($ris=mysqli_fetch_array($query))
{
echo "<tr>";//row start
echo "<td align='center'>".$ris["ID_Categoria"]."</td>"; //col
echo "<td>".$ris["Nome"]."</td>";//col
echo "</tr>"; //row end
}
?>
</table>
<?php
//close the connection
@mysqli_close($connessione);
?>
答案 2 :(得分:0)
替换这个:
$output = preg_replace("<!-– IDCAT -->", $ris["ID_Categoria"], $file_content);
$output = preg_replace("<!–- CATEGORIA -->", $ris["Nome"], $output);
有了这个:
$output = preg_replace("<!-- IDCAT -->", $ris["payer_id"], $file_content);
$output = preg_replace("<!-- CATEGORIA -->", $ris["description"], $output);