我的程序有问题。我是初学者,我用我的母语写的。 PHP

问题描述 投票:0回答:1

我不知道如何添加记录而不是覆盖它。而且我的功能也有一些问题。我用我的母语编写它,但在功能上存在一些问题。我遇到无法调用的函数的问题。我几乎尝试了一切,但现在我迷失了。

<?php
        function vypocet_a_zapis($ubytovani, $strava, $doprava, $soubor)
        {
            $celkove_naklady = $ubytovani + $strava + $doprava;

            if($celkove_naklady <= 500)
            {
                $destinace = "Horská chata";
                $obrazek_url = "";
            }
            elseif($celkove_naklady <= 1000)
            {
                $destinace = "Penzion u lesa";
                $obrazek_url = "";
            }
            else
            {
                $destinace = "Rezort u moře";
                $obrazek_url = "";
            }

            $obsah = "Celkové náklady: $celkove_naklady Kč\nDoporučená destinace: $destinace\nObrázek destinace: $obrazek_url\n";
            //file_put_contents($soubor, $obsah);

            $otevri = fopen($soubor, 'w');
            fwrite($otevri, $obsah);


            return $obsah;
        }

            $ubytovani = $_POST['ubytovani'];
            $strava = $_POST['strava'];
            $doprava = $_POST['doprava'];
    
            vypocet_a_zapis($ubytovani, $strava, $doprava, 'data.txt');
?>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <form action="vypis.php" method="post">
        <button type="submit" name="vypis">Výpis textového souboru</button>  
    </form>
    <form action="2pokus.php" method="post">
        <button type="submit">back to main</button>
    </form>
</body>
</html>

我迷失在代码中,因为我是初学者,所以我尝试聊天 gpt。我真的不太明白

php html fopen fwrite txt
1个回答
0
投票

您的代码中有两个问题,首先您没有打印函数的结果,因此无法显示它。其次,您在 fopen() 函数中使用“w”运算符来打开前面的文件,而不是“a”来打开末尾的文件。最后,我建议在调用该函数后格式化您的数据。我已尽力用您的语言重写代码。

<?php
function vypocet_a_zapis($ubytovani, $strava, $doprava, $soubor)
{
    $celkove_naklady = $ubytovani + $strava + $doprava;

    if ($celkove_naklady <= 500) {
        $destinace = "Horská chata";
        $obrazek_url = "";
    } elseif ($celkove_naklady <= 1000) {
        $destinace = "Penzion u lesa";
        $obrazek_url = "";
    } else {
        $destinace = "Rezort u moře";
        $obrazek_url = "";
    }

    $obsah = [$celkove_naklady, $destinace, $obrazek_url];
    //file_put_contents($soubor, $obsah);

    $otevri = fopen($soubor, 'a');
    fwrite($otevri, $obsah[0] . ";" . $obsah[1] . ";" . $obsah[2]);
    fclose($otevri);

    return $obsah;
}

$ubytovani = $_POST['ubytovani'];
$strava = $_POST['strava'];
$doprava = $_POST['doprava'];

$data = vypocet_a_zapis($ubytovani, $strava, $doprava, 'data.txt')
?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <p>
        <?php
        $output = "Celkové náklady: " . $data[0] . "Kč, Doporučená destinace: " . $data[1] . ", Obrázek destinace: " .$data[2];
        print($output);
        ?>
    </p>
    <form action="vypis.php" method="post">
        <button type="submit" name="vypis">Výpis textového souboru</button>
    </form>
    <form action="2pokus.php" method="post">
        <button type="submit">back to main</button>
    </form>
</body>

</html>
© www.soinside.com 2019 - 2024. All rights reserved.