PHP 从模板创建新页面


PHP Create new page from template

>我已经有一个函数,您可以在其中将数据插入数据库,然后将其打印出索引上的所有"item_name",并将它们各自的"item_name"作为url(example.com/example_name)

为了使代码变得愚蠢,假设item_name是我唯一的行,我希望每个项目都有自己的页面,上面写着"我的项目:example_name"。这是我当前用于打印项目列表的代码:

<?php 
    $sql = "SELECT * FROM items ORDER BY item_name DESC";
    $result = $conn->query($sql);

if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()) {
         echo '        
         <p>
            <a href="/' . $row["item_name"] . '"> ' . $row["item_name"] . ' </a>
         </p> ';      
    }
} else {
    echo "0 results";
}
$conn->close();
?>
最简单的

方法是什么?安全性在这里不是什么大问题。抱歉,如果重复的问题,我已经搜索了 2 个多小时,但没有找到任何直接适用于我的问题的内容。总的来说,我对编程很陌生,所以请不要对我进行太多的技术性研究。谢谢。

如果你想要在读取数据库内容时创建一个页面,你必须首先从数据库中读取名称(你已经这样做了),然后在每次迭代中创建/写入文件(在循环内)。这将为每个名称创建一个文件。

这里有关于如何使用php轻松创建/写入文件的示例。当然,有很多方法可以做到这一点。

请确保运行脚本的用户具有足够的权限在服务器上写入。希望对您有所帮助。

我会通过在 php 中创建一个通用模板页面来解决这个问题。将模板布局出来,使其包含您需要的所有部分,并且每个部分都有一个变量来保存数据。例:

<?php
extract($_POST); // turn your post vars into variables
    echo "<h1>$product_name</h1";
    echo "<h2>Description</h2>";
    echo $description;

等。

您可以为此页面指定任何名称。 让我们使用产品.php。现在,在从查询中获取结果的代码中,使链接指向 product.php。每次调用链接时,它都会使用变量创建该页面的实例。您的链接应如下所示。

while($row = $result->fetch_assoc()) {
         echo '        
     <p>
       <form action="product.php">
    <input type="text" name="productname" value="'.$row['product_name'].'" />
              <input type="submit" value="link" class="button" />
</form>
     </p> ';      
    }

添加$row中的任何其他值。当用户单击链接时,他们将转到将显示值的产品.php页面。这不是一个完整的工作示例,但应该让您朝着正确的方向思考。此外,此代码受 sql 注入的影响,因此您需要收紧它。

创建查询时