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">❮</button>
<button class="btn" onclick="plusIndex(1)" id="btn2">❯</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>
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>