Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/07/2011, 15h41   #1
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Par défaut effacer des annonces

Bonjour,

j'ai un système qui permet de saisir des annonces (du texte et des images) ; tout ceci est stocké dans une table MySQL, ce qui permet de les afficher quand on veut ; mais je voudrais aussi donner la possibilité d'en effacer. Pour faire ça, j'ai fait un formulaire html qui liste toutes les annonces, avec des checkbox pour sélectionner celles qu'on veut effacer :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
	echo '<form method="post" action="../../telepamedia/action/effacer.php" enctype="application/x-www-form-urlencoded">';
	$sql="select date,text,cat,id_annonce from annonce where pseudo='".$pseudo."' AND langue='fr'";
	$result = mysql_query($sql) or die(mysql_error());
	echo '<table>';
     while ($ligne=mysql_fetch_array($result,MYSQL_NUM))
     { 
	     echo '<tr><td><input type="checkbox" name="annonce[] value="'.$ligne[3].'""></td><td>'; echo $ligne[2].' '.$ligne[0].'  '.$ligne[1];
	     echo '</td></tr>';
		 echo '<tr><td></td><td><hr></td></tr>';
	 }
	echo '</table>';
	echo '<tr><td><input type="submit" value="Effacer annonce"></td><td></td></tr></form>';
et voici l'action du formulaire :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
	$annonce=$_POST['annonce'];
	if (isset($_POST['annonce'])) {
 
	foreach($annonce as $ann)
	    {
		$sql="delete from `annonce` where id_annonce='".$ann."'";
		echo 'sql='.$sql.'<br>';
		$result = mysql_query($sql) or die(mysql_error());
 
		}
	echo 'Les annonces ont été effac&eacute;es<br>';
	}
Le problème, c'est que je pensais que $ann vaudrait le numéro de l'id de l'annonce, mais qu'il vaut "on" quelque soit l'annonce sélectionnée : où me suis-je trompé ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 17h49   #2
Membre habitué
 
Avatar de Pahcixam
 
Étudiant
Inscription : avril 2006
Messages : 266
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 266
Points : 108
Points : 108
Bonjour.

Avez-vous essayé d'afficher l'intégralité du retour de la variable POST ? J'ai un doute sur les valeurs renvoyés à cause du:

Code :
enctype="application/x-www-form-urlencoded"
Que donne un:

?
__________________
Quelques conseils:

Utilisez <?php plutôt que <?
Utilisez des ' et la concaténation plutôt que "
Pensez à revenir à la ligne après chaque ; pour plus de clarté.
// Commentez votre code un maximum
Pahcixam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 18h03   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
print_r :
Citation:
Array ( [annonce] => Array ( [0] => on ) )
Pas fameux et pour voir, j'ai essayé de supprimer
Citation:
enctype="application/x-www-form-urlencoded"
mais pareil...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 18h16   #4
Membre habitué
 
Avatar de Pahcixam
 
Étudiant
Inscription : avril 2006
Messages : 266
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : avril 2006
Messages : 266
Points : 108
Points : 108
Autre question, lors de la génération de la page les attributs "value" des champs "checkbox" sont ils bien renseignées ? La requête SQL renvoie-t-elle bien les infos ?

Normalement un checkbox retourne "on" lorsqu'il possède un nom unique. C'est comme si les crochets n'étais pas pris en compte.
__________________
Quelques conseils:

Utilisez <?php plutôt que <?
Utilisez des ' et la concaténation plutôt que "
Pensez à revenir à la ligne après chaque ; pour plus de clarté.
// Commentez votre code un maximum
Pahcixam est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/07/2011, 18h37   #5
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Bien vu : du coup, j'ai regardé le source de la page, et ça m'a montré un bug du PHP : il manquait un " au niveau du name du checkbox (car ça a beau être du html, je fais le formulaire avec des echo). Et maintenant, ça marche.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h00.


 
 
 
 
Partenaires

Hébergement Web