в начале я хочу сказать, что я абсолютно новый в 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="/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&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 + для циклов чрезвычайно медленное)
<?php
for ($i=0; $io <= $_SESSION['level'] ; $i++) {
if(isset(${"level$i"})){
echo ${"level$i"};
}
} ?>
Похоже, что существует ошибка с $ io <= $ _SESSION ['level']. Я думаю, что это должно быть $ я <= $ _SESSION ['level']
EDIT Спасибо за помощь. Также найдите, чтобы выражение IF было бесполезным.
Я считаю, что неправильное использование или манипулирование циклами и контрольными утверждениями. Попробуйте оптимизировать код, он должен ускорить загрузку