PHP 1x, в то время как 2x for loop сильно замедляет загрузку

0

в начале я хочу сказать, что я абсолютно новый в PHP и MySQL.

После создания нескольких циклов 1 x В то время как цикл (для получения данных из БД) и 2x для цикла для создания динамических ссылок на основе "уровня" в БД загрузка этой конкретной страницы начиналась медленно. Я использую MAMP на локальном хосте.

Пытался найти некоторые исправления (сначала считалось, что MAMP является проблемой), но теперь я не знаю, не слишком ли тяжело для этого цикла 2x для цикла. Когда я удаляю оба 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>

EDIT Протестировано несколько сайтов, и похоже, что проблема иногда возникает и на других сайтах. (возможно, сочетание MAMP localhost error + для циклов чрезвычайно медленное)

Теги:

1 ответ

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

Похоже, что существует ошибка с $ io <= $ _SESSION ['level']. Я думаю, что это должно быть $ я <= $ _SESSION ['level']

EDIT Спасибо за помощь. Также найдите, чтобы выражение IF было бесполезным.

Я считаю, что неправильное использование или манипулирование циклами и контрольными утверждениями. Попробуйте оптимизировать код, он должен ускорить загрузку

Ещё вопросы

Сообщество Overcoder
Наверх
Меню