如何使这个HTML模板与PHP一起使用?

时间:2016-12-21 10:06:15

标签: php html templates

首先,我是一个菜鸟,我可能会问一些容易做的事情。 我将这个小模板保存在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);

?>

问题是查询结果没有显示,可能是我错过了某些内容,如何让它工作?

3 个答案:

答案 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);