Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
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/07/2006, 13h33   #1
Membre à l'essai
 
Inscription : décembre 2004
Messages : 31
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 31
Points : 23
Points : 23
Par défaut Suppression d'enregistrement mySQL

Bonjour, débutant PHP je me retrouve confronter a un probleme.
J'ai developpé un script permetant l'ajout d'un enregistrement dans une base mySQL qui fonctionne a merveille.

Je me suis alors mis au travail pour creer un script qui cette fois-ci supprime un enregistrement de la bdd.

VOici le code

Code :
1
2
3
4
5
<form action="validedelete.php" method="post">
      <span class="Style14">Effacer le ban numéro :</span>
        <input type="text" name="ban_id:"> 
      <input name="submit" type="submit" class="Style14" value="Effacer le ban">
</form>
Voici le traitement dans ma page validedelete.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
/*
On se connecte et on choisi la base de données
*/
mysql_pconnect('localhost','user', '*****') OR die ("Impossible de se connecter à la base de donnée");
mysql_select_db('lfs-teamcom') OR die("Impossible de sélectionner la base de données");
 
 
IF (!isset($ban_id)) {
  echo "<p>Aucun enregistrement à supprimer.</p>";
} else {
  $query_string = "DELETE FROM banlist WHERE ban_id=$id";
  $query=mysql_query($query_string);
  IF ($query) {
    echo "<p>L'enregistrement a été effacé</p>";
  } else {
    echo "<p>Problème lors de la suppression</p>";
    echo "<p>" . mysql_error() . "</p>";
  }
}
?>
Les champs de la base de données sont

Code :
1
2
3
4
5
ban_id (clé primaire, AUTO_INCREMENT)
pseudo
steam_id
raison
admin
Je debute depuis peu en PHP. Je lis des tonnes de tutos mais tout n'est pas forcement clair ^^

Merci de détaillé la ou je me suis trompé

Cordialement
Cocalight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 13h38   #2
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Tu as des erreurs ou ça fonctionne ?
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 13h41   #3
Membre à l'essai
 
Inscription : décembre 2004
Messages : 31
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 31
Points : 23
Points : 23
Non le formulaire de suppression ne fonctionne pas.

Il me dit

Code :
Aucun enregistrement à supprimer.
Je precise bien l'id de l'enregistrement a supprimer pourtant et lors de la soumission aucun message d'erreur .. pourtant l'enregistrement est toujours la.
Cocalight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 13h44   #4
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Bonjour,

Deja premier conseils,
- recupere proprement la variable postée.sans utiliser de variable super globale
- Tu ne concatenne pas bien les variable dans ta requete
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
<?
/*
On se connecte et on choisi la base de données
*/
mysql_pconnect('localhost','user', '') or die ("Impossible de se connecter à la base de donnée");
mysql_select_db('lfs-teamcom') or die("Impossible de sélectionner la base de données");

[B]if(isset($_POST['ban_id']))
$banId = $_POST['ban_id'];
else
$banId = NULL[/B]

 
if (banId == NULL) {
echo "<p>Aucun enregistrement à supprimer.</p>";
} else {
$query_string = "DELETE FROM banlist WHERE ban_id=[B]'".$id."" [/B]";
$query=mysql_query($query_string)or die(mysql_error());
if ($query) {
echo "<p >L'enregistrement a été effacé</p>";
} else {
echo "<p>Problème lors de la suppression</p>";
echo "<p>" . mysql_error() . "</p>";
}
}
?>
Colorez votre code PHP sur les forums grâce à Developpez.com

Voila essayes deja ca, ca devrais marcher comme cela...
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 13h45   #5
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
IF (!isset($_POST['ban_id'])) {
  echo "<p>Aucun enregistrement à supprimer.</p>";
} else {
  $query_string = "DELETE FROM banlist WHERE ban_id=".$_POST['ban_id']
;
  $query=mysql_query($query_string);
  IF ($query) {
    echo "<p>L'enregistrement a été effacé</p>";
  } else {
    echo "<p>Problème lors de la suppression</p>";
    echo "<p>" . mysql_error() . "</p>";
  }
}
Comme ceci ?
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 13h49   #6
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102

Le BBcode c'est bien mais des fois...
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 13h50   #7
Membre à l'essai
 
Inscription : décembre 2004
Messages : 31
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 31
Points : 23
Points : 23
@SnakemaN

Je ne comprend pas ton code (newbie quand tu nous tiens) (je colorise mon code la prochaine fois)

@Kerod

TOujours le même résultat, a savoir

Aucun enregistrement a supprimer.
Tu peux voir le script a cette adresse => http://lfs-team.com/e107_files/banlist.php
Cocalight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 13h55   #8
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h03   #9
Membre à l'essai
 
Inscription : décembre 2004
Messages : 31
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 31
Points : 23
Points : 23
Oui effectivement pas malin de ma part.

Maintenant j'ai cette erreur

Code :
1
2
3
Problème lors de la suppression
 
You have an error IN your SQL syntax; CHECK the manual that corresponds TO your MySQL server version FOR the RIGHT syntax TO USE near '' at line 1
Code :
Citation:
<?
mysql_pconnect
('localhost','user', '') or die ("Impossible de se connecter à la base de donnée");
mysql_select_db('lfs-teamcom') or die("Impossible de sélectionner la base de données");

if (!isset(
$_POST['ban_id'])) {
  echo
"<p>Aucun enregistrement à supprimer.</p>";
} else {
  
$query_string = "DELETE FROM banlist WHERE ban_id=".$_POST['ban_id']
;
  
$query=mysql_query($query_string);
  if (
$query) {
      echo
"<p>L'enregistrement a été effacé</p>";
  } else {
      echo
"<p>Problème lors de la suppression</p>";
      echo
"<p>" . mysql_error() . "</p>";
  }
}
?>
Colorez votre code PHP sur les forums grâce à Developpez.com
Cocalight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h11   #10
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Ca vient de ton champ post il doit etre vide..Vérifies bien qu'il y a un contenu
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h12   #11
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Code :
1
2
 
$query_string = "DELETE FROM banlist WHERE ban_id='".$_POST['ban_id']."' ";
Citation:
Envoyé par fanta agrum
Je ne comprend pas ton code (newbie quand tu nous tiens) (je colorise mon code la prochaine fois)
c'est normal c'est le BBcode qui fait des siennes, c'est normal ce n'est qu' un bébé (<- Ultimate Joke Inside )
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h13   #12
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
C'est laborieux tout ça, révise un peu ton html

Code :
<form action="validedelete.php" method="$_POST">
--> method="post"



EDIT: tu avais juste sur ta 1ère version pourquoi avoir changé ?
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h13   #13
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Citation:
Envoyé par SnakemaN
Code :
1
2
 
$query_string = "DELETE FROM banlist WHERE ban_id="'.$_POST['ban_id'].'" ";
Ce serait mieux si tu faisais le contraire
Code :
1
2
 
$query_string = "DELETE FROM banlist WHERE ban_id='".$_POST['ban_id']."' ";
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h14   #14
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Citation:
Envoyé par Kerod
Ce serait mieux si tu faisais le contraire
Code :
1
2
 
$query_string = "DELETE FROM banlist WHERE ban_id='".$_POST['ban_id']."' ";
Qui qui me parle ??
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h18   #15
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Citation:
$query_string = "DELETE FROM banlist WHERE ban_id="'.$_POST['ban_id'].'" ";
Les quotes doivent être à l'intérieur...Pas d'accord ??
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h18   #16
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
T'as une balise </form> de trop qui traine en fin de page !!!
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h20   #17
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
Ce qu'à écrit Snakeman est juste mais ce qu'à cité Kerod est faux.... qui des 2 a raison ?

Il me semble que
Code :
$query_string = "DELETE FROM banlist WHERE ban_id='".$_POST['ban_id']."' ";
est la bonne réponse, ceci dit si son ID est un int c'est un peu inutile !
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h23   #18
Membre Expert
 
Avatar de SnakemaN
 
Bidouille-tout Android
Inscription : juillet 2006
Messages : 871
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Bidouille-tout Android

Informations forums :
Inscription : juillet 2006
Messages : 871
Points : 1 102
Points : 1 102
Et puis je ne sais pas le niveau de securité voulu, mais je mettrai un petit htmlentities()
Au cas ou...
__________________
C'est le signe d'un fou, qu'avoir honte d'apprendre
Ubuntu 10.04 Lucid Lynx @home
LE guide libre Linux & Ubuntu pour tous : Simple comme Ubuntu
SnakemaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h25   #19
Membre à l'essai
 
Inscription : décembre 2004
Messages : 31
Détails du profil
Informations personnelles :
Âge : 30
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : décembre 2004
Messages : 31
Points : 23
Points : 23
@guitou : Je m'en sort comme je peut dsl
@snakeman : htmlentities() connais pas du tout (j'ai déja du mal avec un simple formulaire si tu me donne la marche a suivre

Donc je récapitule mon code formulaire et traitement :

Formulaire :

Code :
1
2
3
4
5
6
7
<form action="validedelete.php" method="post">
  <p><span class="Style14">Effacer le ban numéro :</span>
      <input type="text" name='ban_id'>   
 
    <input name="submit" type="submit" class="Style14" value="Effacer le ban">
  </p>
</form>
traitement (validedelete.php) :

Citation:
<?
/* On se connecte et on choisi la base de données */
mysql_pconnect('localhost','Coyote', '*****')
or die (
"Impossible de se connecter à la base de donnée");
mysql_select_db('lfs-teamcom') or die("Impossible de sélectionner la base de données");
if(isset(
$_POST['ban_id']))
$banId = $_POST['ban_id'];
else
$banId = NULL
if (banId == NULL)
{ echo
"<p>Aucun enregistrement à supprimer.</p>";
} else {
$query_string = "DELETE FROM banlist WHERE ban_id="'.$_POST['ban_id'].'" ";
$query=mysql_query($query_string)or die(mysql_error());
if (
$query) { echo "<p >L'enregistrement a été effacé</p>";
} else {
echo
"<p>Problème lors de la suppression</p>";
echo
"<p>" . mysql_error() . "</p>";
}
}
?>
Colorez votre code PHP sur les forums grâce à Developpez.com
Cocalight est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/07/2006, 14h28   #20
Membre émérite
 
Avatar de guitou12
 
Guillaume
Inscription : juillet 2006
Messages : 813
Détails du profil
Informations personnelles :
Nom : Guillaume
Âge : 29

Informations forums :
Inscription : juillet 2006
Messages : 813
Points : 905
Points : 905
Envoyer un message via MSN à guitou12
C'est sur que si tu te relis pas....

Code :
1
2
3
4
if ($banId == NULL)
{ echo "<p>Aucun enregistrement à supprimer.</p>";
} else {
$query_string = "DELETE FROM banlist WHERE ban_id='".$_POST['ban_id']."' ";
__________________
Le . est la base de toute bonne concaténation, marre de voir des
echo "Mavar1 = $toto et Mavar2 = $titi";
ou pire echo 'Mavar1 = ',$toto,' et Mavar2 = ',$titi;
pratiquez plutôt le echo 'Mavar1 = '.$toto.' et Mavar2 = '.$titi;
guitou12 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 14h06.


 
 
 
 
Partenaires

Hébergement Web