Amélioration d'un script PHP.
Ferméyg_be Messages postés 23480 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 mars 2025 - 16 janv. 2023 à 10:22
- Amélioration d'un script PHP.
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Microsoft activation script - Accueil - Windows
- Ghost script - Télécharger - Polices de caractères
- Script bat - Guide
7 réponses
13 janv. 2023 à 18:02
bonjour,
Je ne comprends pas l'utilité de ce script. A quoi sert-il?
13 janv. 2023 à 18:25
Il sert, en s'intégrant dans un ensemble beaucoup plus complexe mettant en œuvre des temps, de rappels aux utilisateurs de mon site sur les Q-C-M.
Néanmoins en restant uniquement sur ce script (qui fonctionne) as tu trouver comment par exemple le créer moins dense?
Voilà qui devrait être intéressant comme recherche! ?
Modifié le 13 janv. 2023 à 19:51
Je n'ai pas dû chercher longtemps pour trouver comment le créer moins dense: le faire écrire par quelqu'un de compétent.
Je me demande si, au lieu de te former, tu essaies de nous faire corriger tes erreurs.
De plus, tu nous présentes cela comme une recherche intéressante!
13 janv. 2023 à 18:44
Bonjour,
A quoi te sert ta première requête ?
A quoi te sert ta première boucle ?
Pourquoi "sauter" 3 jours ?
Pourquoi ne pas faire une seule requête .... ?
Enfin bon.... améliorer un code... sans savoir ce qu'il est sensé faire... c'est difficile .... Si tu n'es pas plus clair dans tes explications, je doute qu'on puisse te venir en aide.
Et puis.. si c'est si "amusant" .. autant qu'on te laisse jouer avec....
14 janv. 2023 à 12:05
J'ai trouvé une amélioration à ce script de cette façon:
##################### Sélection de la dernière ligne de la table coeffi ############################# $req = $connection->query('SELECT * FROM coeffi ORDER BY id DESC'); $données = $req->fetch(); $id= $données['id']; ############################# Sélection des identifiants et dates ###################################### $x = 0; while($x <= $id){ $requete = $connection->prepare("SELECT id, date_debut FROM coeffi WHERE id=:id "); $requete->execute(array( ':id' => $x )); while ($row = $requete->fetch(PDO::FETCH_ASSOC)) { $_SESSION['identifiant']=($row['id']); $date=($row['date_debut']); } $x=$x+$jour; //$x+3jours } echo $x; // est le dernier jour de la table + $jour.
La première requête sert à lire la dernière entrée de la table coeffi. C'est ainsi qu'en sélectionnant qu'une seule entrée, je n'ai pas eu besoin de faire une boucle que j'ai finalement supprimé.
3 jours n'est qu' un exemple. Cette donnée sera (si je parviens à réaliser mon petit projet) définie par chacun des participants de mon jeu lors d'un formulaire mis à leurs dispositions.
Celui ci leur servira à définir un jour de rappel aux questions qui sont posées chaque jour.
Ainsi au bout de X jours un e-mail sera envoyé à la personne ayant opté pour cette option si elle oublie de venir participer.
Justement, le but de ma demande est d'améliorer encore ce script.
Si possible, cela me plairait bien de réunir ces lignes de codes dans une seule requête!
Je pense que pour des gens passionnés il peut être intéressant de résoudre des petits problème comme celui que je vous présente.
Loin de moi à toujours été l'idée de profiter du travail des autres.
Mais simplement une aide sous la forme de services pour le bien des internautes qui me font l'honneur de se distraire sur mes sites. Voilà c'est "dit".
Comme vous le savez, je suis limité dans mes connaissances. Cependant, il ne s'agit plus pour moi de me former. Mais d'améliorer l'ordinaire et de faire face aux nouveautés technologiques.
Cordialement.
14 janv. 2023 à 12:16
Tu sais que tu peux faire, dans une requête SQL, une condition sur les dates... ?
Et donc avec une seule requête SQL, récupérer les informations qui ont plus de x jours si tu le souhaites...
Cela évitera cette bidouille de boucler sur la table en fonction du dernier id récupéré...
Dans l'idéal, il faudrait stocker en base, pour chaque utilisateur, la date du dernier envoi.
Puis dans ton script, comparé si cette date d'envoi est supérieur ou égal à ton x.. si oui, récupérer les derniers messages supérieur à date du dernier envoi.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question14 janv. 2023 à 12:09
J'ai oublié cette ligne que voici:
$jour=3;
Elle doit être situé au début du script.
14 janv. 2023 à 14:44
Je n'ai jamais rencontré une condition sur les dates dans une requête SQL.
Pourrais tu me présenter un exemple aboutissant si possible au résultat fourni par $x à la fin de mon script (ligne 20) ?
En sachant que la variable $x (nombre de jours) est un entier pouvant être traduit en un timestamp par (86400 secondes (1jour) X $x).
Ainsi lorsque le timestamp de la colonne date_debut correspondant à la dernière entrée de la table + le timestamp ajouté par le participant (ici 3 jours pour l'exemple : 86400 x 3) deviendrait inférieur au moment présent par la fonction time().
Ainsi:
$t=time(); if($x<$t) // Envoi e-mail de rappel à participer au Q-C-M }
Lorsque la condition devient vrai au moment du parcours de ce script, le code que j'aurai inclus dans la condition permettra d'envoyer un e-mail au participant ayant opté pour cette option de rappel.
14 janv. 2023 à 17:28
14 janv. 2023 à 17:51
Pour chaque participant, l'option de rappel, ainsi que le délai avant le rappel (que tu appelles à tort timestamp), sont enregistrés dans la table des participants?
Pourquoi ne pas écrire en français? Tu peux utiliser "délai" ou "période de temps". Le mot anglais "timestamp" signifie "moment", pas du tout délai.
15 janv. 2023 à 14:31
yg_be, loin de me répondre utilement à chacune de tes interventions depuis déjà bien longtemps maintenant, je souhaiterai qu' à l'avenir (si je reviens sur ce forum), que tu ne t'adresses plus à moi !
Je ne m'en porterai pas plus mal.
Bien au contraire !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16 janv. 2023 à 10:22
Pour chaque participant, l'option de rappel, ainsi que le délai avant le rappel, sont-ils enregistrés dans la table des participants?