Comment corriger ma fonction "getBufferLimit" en PHP ???
Ferméjordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 18 août 2022 à 21:31
- Comment corriger ma fonction "getBufferLimit" en PHP ???
- Fonction si et - Guide
- Comment corriger l'erreur 0x80070643 ? - Accueil - Windows
- Easy php - Télécharger - Divers Web & Internet
- Fonction moyenne excel - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
4 réponses
18 août 2022 à 18:23
Bonjour,
Dans ta boucle, tu testes bien si tu es arrivé au "max" à afficher .. mais par contre, tu ne testes pas si tu es bien au min ...
Tu boucles sur tous tes items à chaque fois ( en commençant par le 0 ... alors que tu devrais commencer au next non ? )
Modifié le 18 août 2022 à 20:39
Comment ceci:
$num=$i;
Alors ???
18 août 2022 à 20:42
Je viens d'essayer et ça ne marche touche pas la navigation entre les menus et les sous-menus. Du coup, je suis revenu avec mon foreach.
Ne pourrez-vous m'aider à limiter par lot de 5 maximum l'affichage de la liste des menus ???
18 août 2022 à 20:49
Je demande juste de m'aider à ne afficher que 5 liste de Menu à chaque appel de "99. Next" au lieu d'ajouter comme sur les 5 existants à chaque fois
Modifié le 18 août 2022 à 21:27
$start = $bufferLimit -5 ; $end = $bufferLimit; foreach ($items as $i => $item) { if ($i >= $end){ break; } if($i >= $start && $i < $end ){ $num = $i + 1; //get node by name $userSessions = $_SESSION['userSessions']; $currUserSession = $userSessions[$this->address]; $node = $currUserSession->getNode($item); $title = $node->getTitle(); $objectString .= PHP_EOL . $num . '. ' . $title; } }
Ca pourrait ressembler à un truc du genre
18 août 2022 à 21:31
D'ailleurs, si ta variable $items est un array, tu pourrais aussi essayer de ne traiter que les données souhaitées en passant par un array_slice
https://www.php.net/array_slice
De cette façon.. pas besoin de parcourir tout le tableau pour trouver le début et la fin...
Tu ne ferais ton foreach ( sans les if ) que sur les éléments que tu souhaites afficher.
Modifié le 18 août 2022 à 18:56
Merci jordane45 pour la réponse. Un exemple de code m'aidera grandement car je ne comprends encore rien. J'ai vraiment besoin d'un exemple de code pour mieux cerner votre explication.
Comment donc procéder s'il vous plaît ???
Modifié le 18 août 2022 à 19:20
Comment devrais tester si je suis arrivé au min dans ma boucle ???
Et laquelle des boucle est le foreach dans la fonction recurseMenu ou le do{ ... } while() dans la fonction "toString" ???
J'ai vraiment besoin d'exemple et d'éclairage s'il vous plaît.
18 août 2022 à 19:39
Comprends tu ce que fais ton code ? Est-ce toi qui l'a écrit ?
Dans la boucle do while .. tu fais visiblement une limitation par rapport au nombre de caractères (160 ) .. pas en fonction du nombre d'item du menu à afficher...
D'ailleurs.. si j'utilise le mot "item" depuis tout à l'heure.. ce n'est pas pour rien..
Bref, dans ton foreach, tu vérifies bien si tu as atteins l'indice "max" à afficher... non ?
Modifié le 18 août 2022 à 19:55
Merci encore une fois pour le retour.
Bien sur que dans ma boucle do{ ... } while() j'ai limité le nombre de caractère à 160. Mais devrais procéder autrement vous pensez ???
Comme ceci:
Peut-être ???
Ceci correspond t-il à ce que vous voulez dire ???
Si non, veuillez me corriger s'il vous plaît.
18 août 2022 à 19:55
Non ce n'est pas ce que j'ai voulu dire ...
As tu compris pourquoi je parle d'items ? Si la réponse est non.. et bien.. relis simplement ton code ... ça devrait te sauter aux yeux