Probleme de suppression de donnees

Eléphant du PHP | 101 Messages

03 juin 2005, 11:14

Voici mon script qui veux pas marcher.
<form action="" method="post">
  <p align="center"><span class="Style1">Entrer l'id du message a supprimer</span></p>
  <p align="center">
    <input name"id" type="text" size="10">
  </p>
  <p align="center">
    <input type="submit" value="supprimer">
  </p>
</form>

<?

	mysql_connect("localhost", "*****", "*****");
	mysql_select_db("bdd");
	mysql_query("DELETE FROM chat WHERE id='$_POST['id']'");
	
	mysql_close();
?>
[/code]

Mammouth du PHP | 19672 Messages

03 juin 2005, 11:16

D'abord on dit bonjour, ça se fait, ensuite, si tu veux qu'on sache comment t'aider, il faut nous donner des éléments: ton code ne nous indique rien. As-tu un message d'erreur ? Si oui, indique-t-il une ligne précise du code? peut-on savoir à quoi correspond cette ligne dans le code ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 juin 2005, 11:22

Je pense que tu as un problème de compréhension du fonctionnement,

Quand tu appelle ta page, tu vas tout d'abord executer le script PHP, puis tu vas envoyé le code HTML sur le navigateur qui va l'interpreter et l'afficher.

Donc, au premier affichage, ta variable $_POST['id'] n'existe pas encore vu que le formulaire n'a jamais été affiché et encore moins validé !!!!

Si tu veux que ton script fonctionne, il faut que tu teste si le formulaire a été validé, autrement dit si ta variable POST existe !!!

Essaye ce code :
<form action="" method="post">
  <p align="center"><span class="Style1">Entrer l'id du message a supprimer</span></p>
  <p align="center">
    <input name"id" type="text" size="10">
  </p>
  <p align="center">
    <input type="submit" value="supprimer">
  </p>
</form>

<?
if (isset($_POST['id'])) {
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("bdd");
    mysql_query("DELETE FROM chat WHERE id='$_POST['id']'");
    
    mysql_close();
}
?>
PS : comme le dit Cyrano, un petit bonjour, ca fait toujours plaisir et ça coute pas grand chose ....

On est pas des machines à débugger ;)

Et puis c'est toujours plus sympa de discuter un peu :roll:
Modifié en dernier par zeus le 03 juin 2005, 11:24, modifié 1 fois.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 101 Messages

03 juin 2005, 11:23

excuse moi , Bonjour cyrano

en faite je veu, a partir d'un formulaire supprimer des donnees, je rentre l'id
de la donnees a supprimer , puis normalement ca supprime.
<form action="" method="post">
  <p align="center"><span class="Style1">Entrer l'id du message a supprimer</span></p>
  <p align="center">
    <input name"id" type="text" size="10">
  </p>
  <p align="center">
    <input type="submit" value="supprimer">
  </p>
</form>

<?

	mysql_connect("localhost", "*****", "*****"); // on se connecte a la bdd
	mysql_select_db("bdd"); 
	mysql_query("DELETE FROM chat WHERE id='$_POST['id']'"); // on supprime l'id qui a pour valeur 
															// $_POST['id'] qui doit corespondre a l'id entré
															// dans le formulaire.
	
	mysql_close();
?>

Mammouth du PHP | 19672 Messages

03 juin 2005, 11:24

Bis repetita placent
il faut nous donner des éléments: ton code ne nous indique rien. As-tu un message d'erreur ? Si oui, indique-t-il une ligne précise du code? peut-on savoir à quoi correspond cette ligne dans le code ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 101 Messages

03 juin 2005, 11:24

merci zeus , j'avai pensé a ca mais je nétait pas sure je vais essayer et jte repond .
merci

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 juin 2005, 11:25

On a posté en même temps, mais regarde ma solution, elle doit t'interesser
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 101 Messages

03 juin 2005, 11:31

g une erreur qui s'affiche

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/epesm/www/pages/option.php on line 30
<form action="" method="post">
  <p align="center"><span class="Style1">Entrer l'id du message a supprimer</span></p>
  <p align="center">
    <input name"id" type="text" size="10">
  </p>
  <p align="center">
    <input type="submit" value="supprimer">
  </p>
</form>

<?
if (isset($_POST['id'])) {
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("bdd");
    mysql_query("DELETE FROM chat WHERE id='$_POST['id']'"); // ligne 30
    
    mysql_close();
}
?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 juin 2005, 11:34

Il ne faut pas que tu encapsule ta variable POST
<form action="" method="post">
  <p align="center"><span class="Style1">Entrer l'id du message a supprimer</span></p>
  <p align="center">
    <input name"id" type="text" size="10">
  </p>
  <p align="center">
    <input type="submit" value="supprimer">
  </p>
</form>

<?
if (isset($_POST['id'])) {
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("bdd");
    mysql_query("DELETE FROM chat WHERE id=".$_POST['id'].");
    
    mysql_close();
}
?>
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 101 Messages

03 juin 2005, 11:43

g essayer mais ca ne marche pas ya pas derreur mais les donnees ne se supprime pas.
et je voi pas d'ou ca vien
<form action="" method="post">
  <p align="center"><span class="Style1">Entrer l'id du message a supprimer</span></p>
  <p align="center">
    <input name"id" type="text" size="10">
  </p>
  <p align="center">
    <input type="submit" value="supprimer">
  </p>
</form>

<?
if (isset($_POST['id'])) {
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("bdd");
    mysql_query("DELETE FROM chat WHERE id=".$_POST['id']."");
    
    mysql_close();
}
?>

Eléphant du PHP | 155 Messages

03 juin 2005, 11:45

fautr pas mettre une action au formulaire? du genre tapage.php.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 juin 2005, 11:50

C'est vrai, j'avais pas vu !!!

dans ta balise <form>, soit tu ne met pas l'attribut action="" et il se redirige automatiquement vers elle même, soit tu met action="mapage.php" ou mapage.php est la page qui contient le formulaire !!!

Je te conseille la 2eme solution, ça évite d'éventuels pb de compatibilité !!!
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphant du PHP | 101 Messages

03 juin 2005, 11:52

j'ai fait le changement action="suppression.php"

mai rien je sui dsl de vous embété ,

Eléphant du PHP | 155 Messages

03 juin 2005, 11:55

<form action="suppression.php" method="post">
  <p align="center"><span class="Style1">Entrer l'id du message a supprimer</span></p>
  <p align="center">
    <input name="id" type="text" size="10">
  </p>
  <p align="center">
    <input type="submit" value="supprimer">
  </p>
</form>

<?
if (isset($_POST['id'])) {
    mysql_connect("localhost", "*****", "*****");
    mysql_select_db("bdd");
    mysql_query("DELETE FROM chat WHERE id=".$_POST['id']);
    
    mysql_close();
}
?>
essaye now.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

03 juin 2005, 12:00

et si tu fait afficher ta requete, est ce que l'id saisi existe bien dans la base de données ?

Parce que si tu essaye d'effacer un id qui n'existe pas ... :lol:
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer