Page 1 sur 1

Supprimer des formations passé en favoris membre

Posté : 27 déc. 2012, 20:56
par xenos92
Bonjour,
Je fais face a un petit probleme la , je sais pas trop comment l'aborder et c'est surement un probleme de logique qui fait que mon système ne marche pas.
Alors mon site comporte des formations vidéos, quand on accède à une formation video le membre peut cliquer sur un bouton pour le mettre dans sa page favorisVideos, ainsi il a acces directement à toutes les formations qu'il a mis en favoris sans avoir a chercher dans toutes les formations général.
Ce système fonctionne. J'ai simplement dans la BDD atribué la valeur de 1 dans un champ favoris pour les formations qui sont en favoris et sinon 0 pour les autres.
Ainsi sur la page favorisVideos je n'affiche que les formations qui ont le champ favoris = 1.

Le probleme que j'ai c'est pour supprimer les formations des favoris , je m'embrouille completement .

Voila une image de ma page favorisVideos :
<lien>http://img27.imageshack.us/img27/6085/sdzh.jpg</lien>

Dans mon esprit pour supprimer les formations , il suffit de cliquer sur les checkbox des formations qu'on veut supprimer et attribuer la valeur 0 au lieu de 1 au champ favoris pour que la formations ne fassent plus partis des favoris.
Le champ supprFavoris n'est pas indispensable je pense j'ai l'ai créer car je ne sais plus trop quoi faire. Du coup je me suis dit peut être qu'il faut que quand je valide mon formulaire avec les checkbox qui sont validés alors les formations correspondantes prendront 1 en valeur dans leurs champs supprFavoris et ensuite je sélectionne toutes les formations qui ont 1 en valeur dans supprFavoris pour initialiser la valeur favoris a zéro, mais à mon sens en me relisant c'est complètement inutile.

Comment faire donc ? Dans le code php que je traite je ne vois pas comment associer la valeur d'une checkbox coché a la formations en question afin de la supprimer, je m'embrouille dans la requête a faire bref, j'ai besoin d'aide :p

Voici mon code :
<?php
session_start();
if(empty($_SESSION['membre']))
{
  header('Location: index.php');
}

$nom = $_SESSION['membre'];

require("php/connection.php"); // Pages connection.php qui possede les identifiant de connexion 

$req = $bdd->prepare('SELECT COUNT(*) AS favoris FROM formation WHERE favoris=1'); //Je recupere mon nombre de formation dont le champ favoris est egale a 1
$req->execute(array($_GET['formation']));
$donnees = $req->fetch();
$req->closeCursor();
$nombreFormationFavoris = $donnees['favoris'];


//A partir d'ici je sais plus trop ce que je fais :p

$req = $bdd->prepare('SELECT * FROM formation WHERE favoris=1');
$req->execute(array($_GET['formation']));
$donnees = $req->fetch();
$req->closeCursor();

   $titre = ($donnees['titre']);
   $date = ($donnees['timestamp']);
   $duree = ($donnees['duree']); 
   $difficulte = ($donnees['difficulte']);
   $tagFormation = ($donnees['tagFormation']);
   $video = ($donnees['video']);
   $favoris = ($donnees['favoris']);
   $supprFavoris = ($donnees['supprFavoris']);	

if(!empty($_POST['submitSupprFormation']))// donc après avoir valider les formations que je veux supprimer en cochant les checkbox , j'envoie le formulaire pour supprimer ces formations des favoris
{	
	extract($_POST);
	echo "trouvé : ", count($supprime);
	echo "<br>";
	$i=0;
	
	while($supprime[$i])
	{
		echo $supprime[$i],"<br>";
		$i++;
	}
	
	if($supprime>0)// Si j'ai cocher des checkbox alors je traite mes données
	{
		$supprFavoris = 1;
		$req = $bdd->prepare('UPDATE formation SET supprFavoris=:supprFavoris WHERE id=:id');
		$req->execute(array('supprFavoris'=>$supprFavoris,'id'=>$_GET['formation']));
		echo "test : J'ai des checkbox selectionnées";
	}
		
	if($supprime==0)//Je n'ai coché aucune checkbox,j'affiche une erreur donc
	{
		echo "test : je n'ai rien selectionné";	
	}

}										

?><!DOCTYPE html>
<html lang="fr">
		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
                                
		<!-- feuille de css principal -->
		<link href="css/style.css" rel="stylesheet" type="text/css">

		<head>
 			 <title>Formations - Move it</title>
		</head>

		<body>	
		<!-- Partie formations -->
		<form method="post"><!-- formulaire qui englobe mon bloc de formation pour recuperer les formations qu'on veut supprimer , la fin du formulaire est a la fin de ul -->
		<input type="submit" name="submitSupprFormation"><!-- Mon bouton qui permet de supprimer les formations-->
				<ul id="formations" class="ulFormations">
														
						<?php
						$retour = mysql_query('SELECT * FROM formation WHERE favoris=1 ORDER BY id DESC LIMIT 0, 10');
						while ($donnees = mysql_fetch_array($retour))
						{
						?>
														
						<li class="<?php echo $donnees['tagFormation']; ?>" id="filtrage">
								<div class="blocFormationsContent left">
										<div class="blocFormations">
												<div class="formationsHover">
														<div class="timeFormations"><?php echo $donnees['duree']; ?> min</div>
														<div class="niveauFormations"><?php echo $donnees['difficulte']; ?></div>
												</div>
												<img class="imgFormation" src="img/formation/<?php echo $donnees['imageFormation']; ?>" alt=""/>
												<img class="ombre" src="img/ombre.png" alt=""/>
												<p class="titleFormations text bold"><?php echo $donnees['titre']; ?></p>
												<p class="text grisFonce">
													<?php
														 // On enlève les éventuels antislashs, PUIS on crée les entrées en HTML (<br />).
														$contenu = nl2br(stripslashes($donnees['contenu']));
														echo $contenu;
													?>
												</p>
												Valeur de supprFavoris : <?php echo $donnees['supprFavoris'];?></br>
												<!--<em><a href="commentaires.php?formation=<?php echo $donnees['id']; ?>">Commentaires</a></em>-->
																				
												<input type="checkbox" name="supprime[]" value="<?php echo $donnees['id'];?>">
												supprimer<?php echo $donnees['id'];?>
																				
												<div class="clear"></div>
												<div class="bandeFormations"></div>
										</div>
								</div>
						</li>
														
						<?php
						} 
						?>
						<!-- RETOUR A LA LIGNE POUR LES 3 AUTRES FORMATIONS-->
					        <div class="clear"></div>
				</ul><!-- fin Partie formations-->
		</form><!-- Fin du formulaire qui permet de supprimer-->

Re: Supprimer des formations passé en favoris membre

Posté : 28 déc. 2012, 00:40
par moogli
Salut,

C'est relativement simple, tu as, dans $_POST['supprime'] tous les id des formations à supprimer donc une requête utilisant un where id in(.....) sera l'affaire.

Par exemple
<?php
$sql = 'delete from favoris where id in( '. implode(',',$_POST['supprime'] ).')';
?>

@+