PHP从模板创建新页面

时间:2014-12-29 20:55:43

标签: php mysql

我已经有了一个函数,您可以在其中将数据插入到数据库中,然后在索引上打印出所有" item_name" s及其各自的" item_name" as 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个小时,但没有找到任何直接适用于我的问题。我对编程一般都很陌生,所以请不要对我非常技术性。谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

我会通过在php中创建通用模板页面来实现此目的。将模板放置出来,使其具有您需要的所有部分,并为每个部分保留数据以保存数据。例如:

<?php
extract($_POST); // turn your post vars into variables

    echo "<h1>$product_name</h1";
    echo "<h2>Description</h2>";
    echo $description;

您可以为此页面指定任何名称。让我们使用product.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添加任何其他值。当用户单击链接时,他们将转到product.php页面,其中将显示值。这不是一个完整的工作示例,但应该让您思考正确的方向。此外,此代码受sql注入,因此您需要收紧它。

创建查询时