Variable stocke dernière ligne table BDD au lieu de celle désirée

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Variable stocke dernière ligne table BDD au lieu de celle désirée

Re: Variable stocke dernière ligne table BDD au lieu de celle désirée

par or 1 » 15 juin 2018, 22:21

plutôt qu'un formulaire en get où il n'y a rien à sélectionner pour l'utilisateur, un simple lien vers la page mesfavoris.php en passant en paramètre l'identifiant de la recette.

Re: Variable stocke dernière ligne table BDD au lieu de celle désirée

par Gintama » 15 juin 2018, 22:16

http://127.0.0.1/Final/mesFavoris.php?t ... %A9tillant(etc.. il y a encore d'autres trucs d'écrits, jusqu'à la dernière ligne et ensuite ça se termine par ça)&favoris=Ajouter+aux+favoris. Je ne vois pas comment faire pour ça. J'avais utilisé plusieurs méthode, mais rien ne fonctionnait

Re: Variable stocke dernière ligne table BDD au lieu de celle désirée

par or 1 » 15 juin 2018, 21:21

quel est l'url complète quand le script mesFavoris.php est appelé ? sans paramètre, il n'est pas possible de savoir quel a été le choix.

Variable stocke dernière ligne table BDD au lieu de celle désirée

par Gintama » 15 juin 2018, 21:07

Bonsoir,

J'aimerais avoir de l'aide pour résoudre un problème, j'ai mon code qui me permet d'afficher depuis ma BDD les champs que j'ai sélectionné. Tout fonctionne bien, sauf lorsque je choisis de vouloir sélectionner la ligne qui correspond au titre de ma recette que je veux, j'envoie les résultats dans un autre fichier php où j'y affiche mes sélections. Or il ne m'enregistre que la dernière ligne de ma BDD comme si j'avais sélectionné ma dernière recette, alors que j'ai par exemple choisi la troisième. Pourriez-vous m'aider s'il vous plait ?

Merci d'avance pour vos réponses, je vous joints mes deux fichiers de codes si dessous.

Code principal permettant d'afficher mes recettes et de sélectionner ma recette désirée

Code : Tout sélectionner

<?php session_start(); ?> <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="NosRecettes.css"> <meta charset="UTF-8"/> </head> <body> <?php //Bannière utilisateur connecté if(isset($_SESSION["Identifiant"])) include("banniereco.php"); else include("banniere.php"); ?> <div class="book"> <div class="bookcover"></div> <div id="container"> <!--Permet de changer de recette en cliquant sur un des deux boutons qui appel une fonction--> <button class="btn" onclick="plusIndex(-1)" id="btn1">&#10094;</button> <button class="btn" onclick="plusIndex(1)" id="btn2">&#10095;</button> <?php include("connexion.php"); echo '<form action="mesFavoris.php" target="page" method="get">'; $requete="select * from recettes"; $jeuResultat=$mysqli->query($requete); $ligne=$jeuResultat->fetch_assoc(); //On initialise le fichier d'un tableau vide $fichier = array(); //Nom du dossier comportant les photos $dos_nom = 'Photos'; //Si $dossier peut ouvrir le dossier Photos if($dossier = opendir($dos_nom)){ //$element ouvre le dossier Photos en stockant son nombre d'éléments contenus while($element = readdir($dossier)){ //On vérifie que $element n'est pas dans un dossier au-dessus du dossier Photos et que $element est un fichier .jpg if($element != '.' && $element != '..' && stristr($element,".jpg")) { //On vérifie que $element n'est pas un dossier if (!is_dir($dos_nom.'/'.$element)) //On stocke les élements dans le tableau $fichier $fichier[] = $element; } } } closedir($dossier); $nom_cocktail = null; //Récupère le nom des cocktails sans le .jpg et "_" for($i=0;$i<sizeof($fichier);$i++){ $nom_cocktail[$i] = $fichier[$i]; $nom_cocktail[$i] = str_replace(".jpg", "", $nom_cocktail[$i]); $nom_cocktail[$i] = str_replace("_", " ", $nom_cocktail[$i]); } echo'<table><tr><td>'; while($ligne) { //Compare si les $lignes["titre"] correspondent aux $nom_coktail if(in_array($ligne["titre"], $nom_cocktail)) //Affiche dans le dossier "Photos" les fichiers qui ont le même titre que $ligne["titre"] et $nom_cocktail echo '<img class="slides" src="./Photos/'.$fichier[array_search($ligne["titre"], $nom_cocktail)].'"/>'; else //Affiche une image de cocktail basique echo '<img class="slides" src="./Photos/cocktail.jpg" />'; echo //Affiche le titre de la recette de la ligne courante / Affiche les ingrédients de la recette de la ligne courante / Affiche la préparation de la la recette de la ligne courante '<h3 class="titre"><select name="titre"><option>'.$ligne["titre"].'</option></select></h3> <ul><h4 class="ingredients"><u><b><p> Ingrédients :</p></b></u><li>'.str_replace("|","<li>",$ligne["ingredients"]).'</li></li></h4></ul> <h4 class="preparation"><u><b><p> Préparation :</p></b></u>'.$ligne["preparation"].'</h4>'; $ligne=$jeuResultat->fetch_assoc(); } echo '</td></tr></table>'; ?> <script> var index = 1; function plusIndex(n){ index = index + n; showImage(index); } showImage(1); function showImage(n){ var i; //vars qui obtiennent les informations des élements dont les noms de leur class sont spécifiés var x = document.getElementsByClassName("slides"); var x2 = document.getElementsByClassName("titre"); var x3 = document.getElementsByClassName("ingredients"); var x4 = document.getElementsByClassName("preparation"); //Vérification que n ne soit pas plus grand que la dernière ligne de la BDD, si oui on remet à la première ligne de la BDD (un peu comme un livre) if(n > x.length){ index = 1}; //Vérification que n ne soit pas moins grand que la première ligne de la BDD, si oui on remet à la dernière ligne de la BDD if(n < 1){ index = x.length}; //Parcourt de 0 à l'avant dernière ligne for(i=0;i<x.length;i++){ //S'affichera sans effets particuliers x[i].style.display = "none"; x2[i].style.display = "none"; x3[i].style.display = "none"; x4[i].style.display = "none"; } //S'affichera comme un block x[index-1].style.display = "block"; x2[index-1].style.display = "block"; x3[index-1].style.display = "block"; x4[index-1].style.display = "block"; } </script> </div> </div> </div> <?php echo '<input type="submit" name="favoris" value="Ajouter aux favoris" class="bouton" />'; echo '</form>'; ?> </body> </html>
Second code :

Je stocke dans un tableau de $_SESSION ma sélection.

Code : Tout sélectionner

<?php session_start(); ?> <!DOCTYPE html> <html> <head> <link rel="stylesheet" href="NosRecettes.css"> <meta charset="UTF-8"/> </head> <body> <?php //Bannière si l'utilisateur est connecté if(isset($_SESSION["Identifiant"])) include("banniereco.php"); else include("banniere.php"); include("connexion.php"); //$_SESSION["titre"]=array(); $i=count($_SESSION["titre"]); $_SESSION["titre"][$i]=$_GET["titre"]; var_dump($_SESSION["titre"][$i]); ?> </body> </html>