Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 31/03/2011, 13h40   #1
Invité de passage
 
moh la menace
Inscription : janvier 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : moh la menace

Informations forums :
Inscription : janvier 2011
Messages : 2
Points : 0
Points : 0
Par défaut Fonction Delete php

bonjour;
j’essaye de supprimer d'une base de données le msg cocher en utilisant les checkbox .et pour cela j'ai réaliser ce script si quelqu'un peut m'aider a le corriger vu qu'il fonctionne pas le problème c'est qu'il se content e juste de sélectionner les données de ma table sans les supprimer merci d'avance
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
<?php
 
 
$sql= "SELECT * FROM email " ;
 
 
$req= mysql_query($sql)or exit('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
 
while($data =mysql_fetch_array($req)){
 
 
echo '<input type="checkbox" name="mon_champ[]" value="'.$data['id'].'">';
 
echo '<h7>'  .$data['message'].'</h7>';
 
echo '<br><h7>'  .$data['texte'].'</h7></br>';
 
}
  if (isset($_POST['mon_champ']) AND !empty($_POST['mon_champ'])) {
 
    foreach ($_POST['mon_champ'] as $id) {
 
$sql='DELETE FROM email WHERE id="'.$data['id'].'"';
$req= mysql_query($sql) or exit('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
 
 
 }
}
 
 
?>
taourirte est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 13h47   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
faut mettre une balise <from>
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/03/2011, 13h49   #3
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
if (isset($_POST['mon_champ']) AND !empty($_POST['mon_champ'])) {
	foreach ($_POST['mon_champ'] as $id) {
		$sql='DELETE FROM email WHERE id="'.$data['id'].'"';
		$req= mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
	}
}
$sql= 'SELECT * FROM email';
$req= mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
while($data = mysql_fetch_assoc($req)){
	echo '<input type="checkbox" name="mon_champ[]" value="'.$data['id'].'">';
	echo '<h7>'.$data['message'].'</h7>';
	echo '<br><h7>'.$data['texte'].'</h7></br>';
} 
?>
Dans ta base de données, id est bien de type "varchar" ? Car là, tu lui passes un texte et non un numero.

__

Autre chose, quand tu fais des formulaires, les traitements POST se font AU DESSUS de ta page. Car là:

- Tu affiches, tu valides formulaire.
- Ca revient sur la page, ça affiche et ça supprime ensuite. Donc tu ne verras pas que c'est supprimé car tu as d'abord afficher avant de supprimer
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 13h50   #4
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Citation:
Envoyé par stealth35 Voir le message
faut mettre une balise <from>
Effectivement, pas vu ça. La fatigue.....

<form>, soit dit en passant ^^
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/03/2011, 13h52   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par radicaldreamer Voir le message
Dans ta base de données, id est bien de type "varchar" ? Car là, tu lui passes un texte et non un numero.
en réglage par défaut (non strict) ça passe
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/03/2011, 13h58   #6
Membre éprouvé
 
Avatar de radicaldreamer
 
Homme Guillaume
Développeur Web
Inscription : décembre 2007
Messages : 353
Détails du profil
Informations personnelles :
Nom : Homme Guillaume
Âge : 21
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2007
Messages : 353
Points : 473
Points : 473
Merci du tuyau. Je savais pas. (n’empêche que ça n’empêche en rien de se tenir aux règles strictes, c'est plus "sérieux).
__________________
Si ce que tu as à dire n'est pas plus beau que le silence, alors tais toi.

- Pensez à voter pour les messages qui vous ont été utiles ainsi que de mettre
radicaldreamer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2011, 14h01   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par radicaldreamer Voir le message
Merci du tuyau. Je savais pas. (n’empêche que ça n’empêche en rien de se tenir aux règles strictes, c'est plus "sérieux).
exactement (en plus vive l'injection la)
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 31/03/2011, 14h17   #8
Invité de passage
 
moh la menace
Inscription : janvier 2011
Messages : 2
Détails du profil
Informations personnelles :
Nom : moh la menace

Informations forums :
Inscription : janvier 2011
Messages : 2
Points : 0
Points : 0
Citation:
Envoyé par radicaldreamer Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
if (isset($_POST['mon_champ']) AND !empty($_POST['mon_champ'])) {
	foreach ($_POST['mon_champ'] as $id) {
		$sql='DELETE FROM email WHERE id="'.$data['id'].'"';
		$req= mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
	}
}
$sql= 'SELECT * FROM email';
$req= mysql_query($sql)or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
while($data = mysql_fetch_assoc($req)){
	echo '<input type="checkbox" name="mon_champ[]" value="'.$data['id'].'">';
	echo '<h7>'.$data['message'].'</h7>';
	echo '<br><h7>'.$data['texte'].'</h7></br>';
} 
?>
Dans ta base de données, id est bien de type "varchar" ? Car là, tu lui passes un texte et non un numero.

__

Autre chose, quand tu fais des formulaires, les traitements POST se font AU DESSUS de ta page. Car là:

- Tu affiches, tu valides formulaire.
- Ca revient sur la page, ça affiche et ça supprime ensuite. Donc tu ne verras pas que c'est supprimé car tu as d'abord afficher avant de supprimer
j'ai essayer de changer le type de id mais la base de données n’accepte pas les varchar pour les id
taourirte est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h51.


 
 
 
 
Partenaires

Hébergement Web