PHP 1x而2x for循环减慢了加载速度

时间:2017-12-26 21:15:02

标签: php mysql

一开始我想说我是PHP和MySQL的新手。

进行少量循环 1 x While循环(用于从数据库获取数据)和 2x for循环用于根据数据库加载中的“级别”创建动态链接特定页面开始变慢。我在localhost上使用MAMP。

试图找到一些修复(首先认为MAMP有问题),但现在我不知道2x for循环对于页面来说是不是太重了。当我删除两个FOR LOOPS问题时消失。

可能是因为MAMP(它会在线运行)或者它真的很重,有人看到任何会减慢页面速度的东西吗?

感谢您的帮助

<?php
session_start();
require('connect.php');
$level1 = "<p class='text-center mt-5' style='font-size:8vh'>Bez přihlášení do této sekce nemáte přístup</p>";  

if (isset($_SESSION['username'])){
    $username = $_SESSION['username'];
    $logmsg = "<p class='logged-in'>Jste přihlášen jako <b>$username</b>. <a href='process/logout.php'>Odhlásit se</a></p>";
    $level1 = "<p class='level'><a href='levels/level1.php'>Level1</a></p>";

    $query = "SELECT * FROM user WHERE username='$username'";
    $result = mysqli_query($connection, $query) or die(mysqli_error($connection));

    if (mysqli_num_rows($result) > 0) {
    // output data of each row
        while($row = mysqli_fetch_assoc($result)) {
            $_SESSION['level'] = $row["level"];
        }
    }

    for ($i = 0 ; $i <= $_SESSION['level'] ; $i++) { 
        ${"level$i"} = "<p class='level-size'><a href='levels/level$i.php'>Hádanka $i</a></p>";

    }
}
?>

<html>
<head>
    <meta charset="UTF-8">
    <title>Úvod</title>
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css" integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous">
    <link rel="stylesheet" type="text/css" href="/style.css">
    <link href="https://fonts.googleapis.com/css?family=Patrick+Hand+SC&amp;subset=latin-ext" rel="stylesheet">


    <style type="text/css">
        label,small,button div {
            font-size: 2.5vh
        }
    </style>

</head>
<body class="second-page-body">
    <?php if(isset($logmsg)){ ?><div class="text-right"> <?php echo $logmsg; ?> </div><?php } ?>
    <div class="container">
        <h1 class="text-center p-5"><strong>Willkommen</strong></h1>
    <div class="level-container">   
        <?php for ($i=0; $io <= $_SESSION['level'] ; $i++) { 
                if(isset(${"level$i"})){
                    echo ${"level$i"};
            }
        } ?>
    </div>
    </div>
</body>

修改 测试了一些网站,看起来问题有时也会发生在其他网站上。 (也许MAMP localhost错误+ for循环的组合非常慢)

1 个答案:

答案 0 :(得分:2)

<?php 
    for ($i=0; $io <= $_SESSION['level'] ; $i++) { 
            if(isset(${"level$i"})){
                echo ${"level$i"};
        }
    } ?>

$ io&lt; = $ _SESSION [&#39; level&#39;] 似乎有误。我认为应该是 $ i&lt; = $ _SESSION [&#39; level&#39;]

修改 感谢帮助。还发现IF语句在那里没用。

我认为循环和控制语句的使用或操作是错误的。尝试优化代码,它应该加快加载