Как генерировать базовые HTML-страницы со статическим контентом, используя PHP и mysql? - PullRequest
0 голосов
/ 08 сентября 2018

Я недавно начал писать код на PHP для конкретного проекта. Я использую библиотеку PHPQRCode для генерации QR-кодов из образца базы данных, созданной на MYSQL. Я выполняю все это на сервере XAMPP, размещенном на моей машине.

Примеры записей из моей базы данных приведены ниже: enter image description here

Также я опубликую фрагмент кода, который я написал до сих пор. Этот код выбирает данные из базы данных и преобразует их в QRCode. Комментарии были добавлены в необходимые строки.

<?php
include "phpqrcode/qrlib.php";
// This library helps in generating QR Code 
// db_name is quickcodedatabase
define("DB_SERVER", "localhost");
define("DB_USER", "root");
define("DB_PASSWORD", "");
define("DB_DATABASE", "quickcodedatabase");

$connect = mysqli_connect(DB_SERVER, DB_USER, DB_PASSWORD, DB_DATABASE);

//actual sql query
$sql = "SELECT * FROM quickcodetable";
$result = $connect->query($sql);
$count = 1;
// count is used here to generate sequential names for output image files.
if ($result->num_rows > 0)
{
    // output data of each row
    while ($row = $result->fetch_assoc())
    {
        $rowdata = "Name: " . $row["s_name"] . " Address = " . $row["s_address"] . " Amount = " . $row["amount"];

        echo nl2br($rowdata . "\n");

        $file_name = "test_mid" . $count . ".png";
        $count++;
        //count is used to generate sequential file names
        QRcode::png($rowdata, $file_name);

        echo nl2br("<img src='../$file_name'>" . "\n");

    }
}
else
{
    echo "No results";
}

mysqli_close($connect);

?>

Вывод, который я получаю после запуска вышеуказанного кода:

enter image description here

Теперь я хочу получить , чтобы получить (или экспортировать) каждый QR и связанные с ним данные в отдельный файл HTML . Итак, в моем случае после запуска кода у меня будет три вновь созданных HTML-файла.

Поскольку я довольно новичок в PHP, я не могу понять, как это сделать. Я посмотрел на некоторые из связанных вопросов, размещенных здесь, но большинство из них могло включать использование некоторых COM-объектов, о которых я ничего не знаю. Меня не волнует форматирование выходных страниц, если я получаю информацию, связанную с каждой записью базы данных, экспортированной на отдельной странице HTML вместе с соответствующим QR-кодом.

Любая помощь в этом отношении будет оценена.

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018
<?php
if($_SERVER["REQUEST_METHOD"] == "POST"){
$n = $_POST['n'];
$p = $_POST['p'];
$con = mysqli_connect("localhost","mysql username","mysql password","database name");
    if($con->query("insert into users(name,password)values('$n','$p')")){
header("location:index.php");
}
}
?>
<form method="post" action="file.php">
<input type="text" name="n" placeholder="Name"/>
<input type="password" name="p"  placeholder="Password"/>
<input type="submit" value="add"/>
</form>
0 голосов
/ 08 сентября 2018

Немного измените этот кусок кода следующим образом. Он будет сохранять HTML-текст с изображением кода qr в HTML-файл на каждой итерации с именем «test_mid». $ кол. ".Html"

 while ($row = $result->fetch_assoc())
{
    $rowdata = "Name: " . $row["s_name"] . " Address = " . $row["s_address"] . " Amount = " . $row["amount"];

    $rowdata=nl2br($rowdata . "\n");

    $file_name = "test_mid" . $count . ".png";
    $count++;
    //count is used to generate sequential file names
    QRcode::png($rowdata, $file_name);

    $rowdata.=nl2br("<img src='../$file_name'>" . "\n");
    file_put_contents("test_mid" . $count . ".html",$rowdata);

}
...