Suppression de données en php
Résolu/Fermé
ginger4957
Messages postés
37
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
3 mars 2009
-
5 févr. 2009 à 18:12
ginger4957 Messages postés 37 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 3 mars 2009 - 6 févr. 2009 à 14:28
ginger4957 Messages postés 37 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 3 mars 2009 - 6 févr. 2009 à 14:28
A voir également:
- Suppression de données en php
- Forcer suppression fichier - Guide
- Easy php - Télécharger - Divers Web & Internet
- Reinstaller windows sans perte de données - Guide
- Effacer les données de navigation - Guide
- Suppression page word - Guide
4 réponses
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
5 févr. 2009 à 18:17
5 févr. 2009 à 18:17
As-tu essayé if (isset($_POST["nomPropr"])) { ? (guillemets au lieu de simples cotes) ... je n'ai jamais bien compris la différence. À tester.
Sinon dans la ligne qui suit (mais ce serait un autre problème) tu as mis $_POST[nomPropr], il manque soit le $ si nomPropr est une variable, soit les guillemets.
Sinon dans la ligne qui suit (mais ce serait un autre problème) tu as mis $_POST[nomPropr], il manque soit le $ si nomPropr est une variable, soit les guillemets.
william7007
Messages postés
335
Date d'inscription
dimanche 28 décembre 2008
Statut
Membre
Dernière intervention
23 mars 2010
46
5 févr. 2009 à 19:07
5 févr. 2009 à 19:07
bonsoir
ben excusez moi comme d'hab je suis l'oiseau de mauvais augure. mais voyons ce que nous avons là.
1.ben concernant l'initialisation de la variable de ton formulaire vérifie que la feuille qui fait appele à celle affichée ci dessus contient bien un champ dont la propriété name est (nomPropr). et avant de valider affecte une valeur à ce champ et là tu n'aura plus ton erreur.
2. je ne comprend pas un truc soit c'est moi qui lit mal mais je ne voie en aucun endroit où tu a déclarer la variable $nom (utilisée à la ligne $sql ='DELETE from proprietaire WHERE nom="'.$_POST['nom'].'"'; ).
3. lorsque j'analyse ta requete de sélection dans la base je voie que tu récupère un seul champ du nom de (code_table à la ligne $sql = 'SELECT code_table FROM nom_table WHERE nom = "'.$_POST[nomPropr].'"'; ) mais si je ne me trompe pas lorsque tu veux récuperer ce dernier (à la ligne $numero_contrat = $data['code']; ) tu utilise plus tôt un autre nom différent de celui que tu as sorti de ta requete code (code )
@bizu53 ben il n'y a pas de différence à utiliser les simples ou les doubles cotes avec PHP seulement il faut faire attention si tu utilise l'un laisse l'autre tu risquerais de te tromper en ouvrant un et en fermant plus tot l'autre. et au niveau de la gestion des bougues de l'apostrophe.
cdlt.
ben excusez moi comme d'hab je suis l'oiseau de mauvais augure. mais voyons ce que nous avons là.
1.ben concernant l'initialisation de la variable de ton formulaire vérifie que la feuille qui fait appele à celle affichée ci dessus contient bien un champ dont la propriété name est (nomPropr). et avant de valider affecte une valeur à ce champ et là tu n'aura plus ton erreur.
2. je ne comprend pas un truc soit c'est moi qui lit mal mais je ne voie en aucun endroit où tu a déclarer la variable $nom (utilisée à la ligne $sql ='DELETE from proprietaire WHERE nom="'.$_POST['nom'].'"'; ).
3. lorsque j'analyse ta requete de sélection dans la base je voie que tu récupère un seul champ du nom de (code_table à la ligne $sql = 'SELECT code_table FROM nom_table WHERE nom = "'.$_POST[nomPropr].'"'; ) mais si je ne me trompe pas lorsque tu veux récuperer ce dernier (à la ligne $numero_contrat = $data['code']; ) tu utilise plus tôt un autre nom différent de celui que tu as sorti de ta requete code (code )
@bizu53 ben il n'y a pas de différence à utiliser les simples ou les doubles cotes avec PHP seulement il faut faire attention si tu utilise l'un laisse l'autre tu risquerais de te tromper en ouvrant un et en fermant plus tot l'autre. et au niveau de la gestion des bougues de l'apostrophe.
cdlt.
bizu53
Messages postés
1274
Date d'inscription
samedi 30 août 2008
Statut
Membre
Dernière intervention
21 juin 2015
860
5 févr. 2009 à 19:38
5 févr. 2009 à 19:38
Juste pour précision, il y a bien une différence, je pensais (car je l'avais toujours entendu) pareil avant de m'en rendre compte l'été dernier pendant mon stage sur une recherche du caractère 1 dans une chaîne. Le 1 ne passait pas parce qu'il était pris comme un entier (et donc le caractère de code 1), le '1' ne passait pas (je ne sais pas pourquoi), et le "1" passait bien. (Je vais voir si j'ai encore mon code pour que tu puisses t'en rendre compte, et ainsi donner l'exemple concret).
ginger4957
Messages postés
37
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
3 mars 2009
1
6 févr. 2009 à 09:53
6 févr. 2009 à 09:53
Bonjour,
merci de vos réponses. La différence entre les simples et les doubles côtes est que les premières servent à ce que php interprète les valeurs.
Je renvoie mon code :
<?php
// on teste si la variable du formulaire est bien déclarée
if (isset($_POST['nomPropr'])) {
// on recherche le numéro du contrat à supprimer
$sql = 'SELECT codePropr FROM table WHERE nomPropr = "'.$_POST['nomPropr'].'"';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on récupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on recupere la valeur qui nous interesse
$numero_contrat = $data['codePropr'];
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
// lancement de la requête pour effacer notre membre
$sql ='DELETE from proprietaire WHERE nomPropr="'.$_POST['nomPropr'].'"';
// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base
mysql_close();
// un petit message afin de voir ce qui s'est passé
echo 'Vous venez de supprimer '.$_POST['nomPropr'].' de la base.';
} else {
echo 'La variable du formulaire n\'est pas initialisée.';
}
?>
Je ne trouves toujorus pas...
merci de vos réponses. La différence entre les simples et les doubles côtes est que les premières servent à ce que php interprète les valeurs.
Je renvoie mon code :
<?php
// on teste si la variable du formulaire est bien déclarée
if (isset($_POST['nomPropr'])) {
// on recherche le numéro du contrat à supprimer
$sql = 'SELECT codePropr FROM table WHERE nomPropr = "'.$_POST['nomPropr'].'"';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on récupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on recupere la valeur qui nous interesse
$numero_contrat = $data['codePropr'];
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
// lancement de la requête pour effacer notre membre
$sql ='DELETE from proprietaire WHERE nomPropr="'.$_POST['nomPropr'].'"';
// on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
// on ferme la connexion à la base
mysql_close();
// un petit message afin de voir ce qui s'est passé
echo 'Vous venez de supprimer '.$_POST['nomPropr'].' de la base.';
} else {
echo 'La variable du formulaire n\'est pas initialisée.';
}
?>
Je ne trouves toujorus pas...
ginger4957
Messages postés
37
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
3 mars 2009
1
6 févr. 2009 à 10:08
6 févr. 2009 à 10:08
PS : Et comment faire pour afficher un message de confirmation (en php si possible) Ok ou Annuler ?
Psyk974
Messages postés
551
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
51
6 févr. 2009 à 10:51
6 févr. 2009 à 10:51
Puis-je voir le code de ton formulaire ?
Pour un message de confirmation tu peux utiliser du Javascript dans le Onclick du bouton valider de ton formulaire.
Pour un message de confirmation tu peux utiliser du Javascript dans le Onclick du bouton valider de ton formulaire.
ginger4957
Messages postés
37
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
3 mars 2009
1
>
Psyk974
Messages postés
551
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
6 févr. 2009 à 12:23
6 févr. 2009 à 12:23
Oui le voici :
Mon formulaire :
<?php
// connexion à la base de données
mysql_connect("localhost","root","tooreet");
mysql_select_db($database_conn_locasaison, $conn_locasaison);
echo //afficher tous les propriétaires
'<table border="0" cellspacing="3" cellpadding="5" id="logDispo">
<tr><td id="titre">Liste des propriétaires</td></tr>
<tr><td> </td></tr>
<tr id="soustitre">
<td>Nom</td>
<td>Prénom</td>
<td>Date de naissance</td>
<td>Numéro de rue</td>
<td>Nom de rue</td>
<td>Code postal</td>
<td>Ville</td>
<td>Téléphone fixe</td>
<td>Téléphone mobile</td>
<td>E-mail</td>
<td>Modification</td>
<td>Suppression</td></tr>
<tr><td> </td></tr>';
do { //afficher tant qu'il existe des enregistrements
echo '<tr>
<td>'.$row_rsProprietaire['nomPropr'].'</td>
<td>'.$row_rsProprietaire['prenomPropr'].'</td>
<td>'.$row_rsProprietaire['dateNaissPropr'].'</td>
<td>'.$row_rsProprietaire['numRuePropr'].'</td>
<td>'.$row_rsProprietaire['nomRuePropr'].'</td>
<td>'.$row_rsProprietaire['cpPropr'].'</td>
<td>'.$row_rsProprietaire['villePropr'].'</td>
<td>'.$row_rsProprietaire['fixePropr'].'</td>
<td>'.$row_rsProprietaire['mobilePropr'].'</td>
<td>'.$row_rsProprietaire['mailPropr'].'</td>
<td><a href="modifProprio.php?id='.$row_rsProprietaire['codePropr'].'">Modifier</a></td>
<td><a href="suppProprio.php?id='.$row_rsProprietaire['codePropr'].'">Supprimer</a></td></tr>';
}
while ($row_rsProprietaire = mysql_fetch_assoc($rsProprietaire));
echo '</table>';
?>
Mon formulaire :
<?php
// connexion à la base de données
mysql_connect("localhost","root","tooreet");
mysql_select_db($database_conn_locasaison, $conn_locasaison);
echo //afficher tous les propriétaires
'<table border="0" cellspacing="3" cellpadding="5" id="logDispo">
<tr><td id="titre">Liste des propriétaires</td></tr>
<tr><td> </td></tr>
<tr id="soustitre">
<td>Nom</td>
<td>Prénom</td>
<td>Date de naissance</td>
<td>Numéro de rue</td>
<td>Nom de rue</td>
<td>Code postal</td>
<td>Ville</td>
<td>Téléphone fixe</td>
<td>Téléphone mobile</td>
<td>E-mail</td>
<td>Modification</td>
<td>Suppression</td></tr>
<tr><td> </td></tr>';
do { //afficher tant qu'il existe des enregistrements
echo '<tr>
<td>'.$row_rsProprietaire['nomPropr'].'</td>
<td>'.$row_rsProprietaire['prenomPropr'].'</td>
<td>'.$row_rsProprietaire['dateNaissPropr'].'</td>
<td>'.$row_rsProprietaire['numRuePropr'].'</td>
<td>'.$row_rsProprietaire['nomRuePropr'].'</td>
<td>'.$row_rsProprietaire['cpPropr'].'</td>
<td>'.$row_rsProprietaire['villePropr'].'</td>
<td>'.$row_rsProprietaire['fixePropr'].'</td>
<td>'.$row_rsProprietaire['mobilePropr'].'</td>
<td>'.$row_rsProprietaire['mailPropr'].'</td>
<td><a href="modifProprio.php?id='.$row_rsProprietaire['codePropr'].'">Modifier</a></td>
<td><a href="suppProprio.php?id='.$row_rsProprietaire['codePropr'].'">Supprimer</a></td></tr>';
}
while ($row_rsProprietaire = mysql_fetch_assoc($rsProprietaire));
echo '</table>';
?>
Psyk974
Messages postés
551
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
51
>
ginger4957
Messages postés
37
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
3 mars 2009
6 févr. 2009 à 12:36
6 févr. 2009 à 12:36
Heu ça ressemble pas à un formulaire ce que tu m'as donné lol.
<form name="nom_du_form" action="page.php" method="POST">
...
</form>
<form name="nom_du_form" action="page.php" method="POST">
...
</form>
ginger4957
Messages postés
37
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
3 mars 2009
1
>
Psyk974
Messages postés
551
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
6 févr. 2009 à 12:46
6 févr. 2009 à 12:46
A la place je fais ça sur les lignes de la fin :
<?php
...
<td><a href="modifProprio.php?id='.$row_rsProprietaire['codePropr'].'">Modifier</a></td>
<td><a href="suppProprio.php?id='.$row_rsProprietaire['codePropr'].'">Supprimer</a></td></tr>';
?>
IL y a deux boutons d'envoi qui ne renvoient pas sur la même page c'est pour ça...
Sinon d'habitude par exemple quand il y a un seul bouton Envoyer, j'utilise un formulaire :
<form name ="formProprietaire" action="" method="POST">
<table>
...
<tr><td><input type="submit" value="Envoyer"></input>"
</table>
</form>
<?php
...
<td><a href="modifProprio.php?id='.$row_rsProprietaire['codePropr'].'">Modifier</a></td>
<td><a href="suppProprio.php?id='.$row_rsProprietaire['codePropr'].'">Supprimer</a></td></tr>';
?>
IL y a deux boutons d'envoi qui ne renvoient pas sur la même page c'est pour ça...
Sinon d'habitude par exemple quand il y a un seul bouton Envoyer, j'utilise un formulaire :
<form name ="formProprietaire" action="" method="POST">
<table>
...
<tr><td><input type="submit" value="Envoyer"></input>"
</table>
</form>
Psyk974
Messages postés
551
Date d'inscription
lundi 2 février 2009
Statut
Membre
Dernière intervention
30 mars 2010
51
>
ginger4957
Messages postés
37
Date d'inscription
jeudi 12 juin 2008
Statut
Membre
Dernière intervention
3 mars 2009
6 févr. 2009 à 13:01
6 févr. 2009 à 13:01
Voilà le lien que tu dois utiliser pour supprimer ton enregistrement dans la base.
<a href="suppProprio.php?id='.$row_rsProprietaire['codePropr'].'">Supprimer</a>
Dans ta page "suppProprio.php" tu dois appeler la variable $_GET.
En effet dans ton lien tu passes en paramètre l'identifiant du propriétaire.
ta condition sera alors
if (isset($_GET['id'])) {
//blabla
}
else {
echo 'Variable n'existe pas.';
}
<a href="suppProprio.php?id='.$row_rsProprietaire['codePropr'].'">Supprimer</a>
Dans ta page "suppProprio.php" tu dois appeler la variable $_GET.
En effet dans ton lien tu passes en paramètre l'identifiant du propriétaire.
ta condition sera alors
if (isset($_GET['id'])) {
//blabla
}
else {
echo 'Variable n'existe pas.';
}