[résolu]Probleme suppression par checkbox

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 : [résolu]Probleme suppression par checkbox

Re: Probleme suppression par checkbox

par Jibe » 09 juin 2011, 14:13

Ça marche, problème réglé.
Je te remercie Mazarini

Re: Probleme suppression par checkbox

par Mazarini » 09 juin 2011, 14:03

$bdd->exec("DELETE FROM fonction WHERE codefct IN ('" . implode("','",$fct)."')");

Re: Probleme suppression par checkbox

par Jibe » 09 juin 2011, 13:38

Et dans mon exemple ça donnerait quoi ?

Re: Probleme suppression par checkbox

par Mazarini » 09 juin 2011, 12:12

Bonjour,

Il faut mettre les chaines de caractère entre quote.

delete from TaTable where champ1 in ('A','B') et non pas delete from TaTable where champ1 in (A,B)

[résolu]Probleme suppression par checkbox

par Jibe » 09 juin 2011, 11:20

Bonjour,

Je me trouve confronté à un problème de suppression par cases à cocher.

Voici le code pour lequel l'utilisateur sélectionne ce qu'il veut supprimer :
									
?> 
<p> Voici la liste des fonctions : </p>
<?php
															
$reponse = $bdd->query('SELECT * FROM fonction ORDER BY libfct ASC');
while ($donnees = $reponse->fetch())
{
 ?>
	<span class="col"><input type="checkbox" name="fct[]" value="<?php echo $donnees["codefct"];?>" id="fct[]" /><label for="fct[]"><?php echo $donnees["libfct"];?></label></span><br />
<?php
 }
Ensuite la page de confirmation qui affiche les cases à cocher qui ont été sélectionnées :
				
$fct = $_POST['fct'];
?>
	<p>Etes-vous sur de vouloir supprimer : </p>
	<?php
	foreach($fct as $element)
	{
		$reponse = $bdd->query("SELECT libfct FROM fonction WHERE codefct='$element' ORDER BY libfct ASC");
		while ($donnees = $reponse->fetch())
		{ 
			?>
			<span class="col"><input type="checkbox" name="fct[]" id="fct[]" value="<?php echo $element; ?>" checked="checked"/><?php echo $donnees['libfct'].'<br />'; ?></span>
			<?php
		}
	}
	?>
	<p> <input name="val" type="submit" value="Valider" /></p>
<?php
Et enfin la page de suppression qui contient donc l'erreur :
if (!empty($_POST['fct'])) 
{
	$fct=$_POST['fct'];
							
	$bdd->exec("DELETE FROM fonction WHERE codefct IN (" . implode(",",$fct).")");
	$bdd->exec("DELETE FROM fonction_bis WHERE codefct IN (" . implode(",",$fct).")");
	$bdd->exec("DELETE FROM l_collab_fct_met WHERE codefct IN (" . implode(",",$fct).")");
	$bdd->exec("DELETE FROM l_collab_fct_met WHERE codefctbis IN (" . implode(",",$fct).")");
	$bdd->exec("DELETE FROM l_comp_fct WHERE codefct IN (" . implode(",",$fct).")");
												
	?><p class="style2"><?php echo 'Les fonctions ont été supprimées'; ?> </p> 
<?php
}
Et voilà l'erreur qui est retournée Erreur : SQLSTATE[42S22]: Column not found: 1054 Unknown column 'TS' in 'where clause'

Le problème que j'ai en fait c'est que le codefct c'est des chaines de caractère et non des entiers et je ne sais pas comment le traiter.
Merci