Supression BDD

Résolu/Fermé
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 - 14 mai 2011 à 18:36
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 - 16 mai 2011 à 16:12
Bonjour à vous,

J'ai un petit tableau où s'affichent des contacts.
J'ai fait, dans une dernière colonne, un bouton "supprimer" pour pouvoir
effacer des lignes dans mon tableau.

Seulement je suis un peu parti dans tous les sens et du coup je n'arrive plus à m'y retrouver.

Pouvez vous m'aiguiller dans ce qui ne va pas ?


<?php

if(isset($_POST['action'])){

$id = $_GET['nom'];

mysql_query("DELETE FROM contact WHERE nom='$id'")or die(mysql_error());

}

else{

?>

<form action="index.php" method="post">
<input type="hidden" name="action" value="add">

<table border="5" align="center">
  <tr>
    <td>Numéro Client</td>
    <td>Société</td>
    <td>Nom</td>
    <td>Adresse</td>
    <td>Code Postal</td>
    <td>Ville</td>
    <td>Téléphone Fixe</td>
    <td>Téléphone Portable</td>
    <td>Fax</td>
    <td>Mail</td>
    <td>Remarques</td>
  </tr>
  <?php do { ?>
    <tr>
      <td><?php echo $row_clients['numeroclient']; ?></td>
      <td><?php echo $row_clients['societe']; ?></td>
      <td><?php echo $row_clients['nom']; ?></td>
      <td><?php echo $row_clients['adresse']; ?></td>
      <td><?php echo $row_clients['codepostal']; ?></td>
      <td><?php echo $row_clients['ville']; ?></td>
      <td><?php echo $row_clients['telfixe']; ?></td>
      <td><?php echo $row_clients['telportable']; ?></td>
      <td><?php echo $row_clients['fax']; ?></td>
      <td><?php echo $row_clients['mail']; ?></td>
      <td><?php echo $row_clients['remarques']; ?></td>
      <td><input type="submit" name="Supprimer" value="Supprimer">
	</td>
    </tr>
    <?php } while ($row_clients = mysql_fetch_assoc($clients)); ?>
</table>

</form>



9 réponses

rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
14 mai 2011 à 20:38
Bonsoir,

Il y a un mélange de variable super globale POST et de GET !!!!
Elle est ou la connexion vers la base de données dans le script !!!!

@+
0
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 7
15 mai 2011 à 07:47
La connexion est plus haut dans mon code, je ne l'ai pas mise.

J'ai remplacé GET par POST mais cela ne marche toujours pas.

En fait j'ai une erreur me disant que le champ nom est undefined.

Je pense que le formulaire n'est pas bien structuré.
0
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
Modifié par rescue le 15/05/2011 à 08:42
Bonjour,

Voilà pour moi ce qu'il faudrait modifier à vu de nez à tester car je n'ai pas tester :

<?php

if(isset($_GET['nom'])){

$nom = $_GET['nom'];

mysql_query("DELETE FROM contact WHERE nom='$nom'")or die(mysql_error());

}

else{

?>

<form action="index.php" method="GET">

<table border="5" align="center">
<tr>
<td>Numéro Client</td>
<td>Société</td>
<td>Nom</td>
<td>Adresse</td>
<td>Code Postal</td>
<td>Ville</td>
<td>Téléphone Fixe</td>
<td>Téléphone Portable</td>
<td>Fax</td>
<td>Mail</td>
<td>Remarques</td>
</tr>
<?php do { ?>
<tr>
<td><input type="hidden" name="nom" value="<?php echo $row_clients['nom']; ?>"></td>
<td><?php echo $row_clients['numeroclient']; ?></td>
<td><?php echo $row_clients['societe']; ?></td>
<td><?php echo $row_clients['nom']; ?></td>
<td><?php echo $row_clients['adresse']; ?></td>
<td><?php echo $row_clients['codepostal']; ?></td>
<td><?php echo $row_clients['ville']; ?></td>
<td><?php echo $row_clients['telfixe']; ?></td>
<td><?php echo $row_clients['telportable']; ?></td>
<td><?php echo $row_clients['fax']; ?></td>
<td><?php echo $row_clients['mail']; ?></td>
<td><?php echo $row_clients['remarques']; ?></td>
<td><input type="submit" name="Supprimer" value="Supprimer"></td>
</tr>
<?php } while ($row_clients = mysql_fetch_assoc($clients)); ?>
</table>

</form>

Voilà mais ATTENTION si tu as 2 sociétés avec le même nom tu risque de supprimer les 2 en même temps.

Une suppression dans une base de données c'est toujours sur id du champs de la ligne à supprimer. Comme id est unique on prend moins de risque.

@+


Mieux vaut paraitre 'CON' 5mn, que de le rester toute sa vie.
0
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 7
16 mai 2011 à 07:55
Merci beaucoup, j'ai fait comme tu me l'a conseillé, avec l'ID, effectivement cela est mieux.

J'ai une question bonus lol, le champ "remarques" est amené à contenir pas mal de texte, comme puis je faire pour que, au bout d'un certain nombres de caractères, il y ait un retour à la ligne dans la cellule ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
16 mai 2011 à 10:21
Bonjour,

Normalement le texte passe automatiquement à la ligne.
Envoi nous ton code du textearea.

@+
0
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 7
16 mai 2011 à 15:34
<td align="center" valign="middle"> <?php echo $row_clients['remarques']; ?> </td>

Voici :)

En fait, le champ du tebleau s'étend, il ne va pas à la ligne j'ai l'impression.

A moins que ce soit dans la base de données le problèmes.
C'est un champ text sans limite de taille.
0
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
16 mai 2011 à 15:55
Re,

Non ce n'est pas ce que je voulais.
On ne sait pas compris je pense.
Ce que tu veux c'est l'affichage je pense.

Alors il faut utiliser la fonction nl2br()

<td align="center" valign="middle"> <?php echo nl2br($row_clients['remarques']); ?> </td>

J'espère que c'est bien ça que tu voulais.

@+
0
TRUNCKS Messages postés 1030 Date d'inscription vendredi 10 août 2007 Statut Membre Dernière intervention 3 juin 2023 7
16 mai 2011 à 16:04
J'ai fait un screen, ce sera plus parlant:

https://imageshack.com/

En fait, tu vois la ligne de "aaaaaa", elle continue indéfiniment.

J'ai fait avec le nl2br, mais c'est la même chose, saut erreur de ma part.

Merci beaucoup pour ta patience dans tout les cas.
0
rescue Messages postés 1039 Date d'inscription vendredi 16 novembre 2007 Statut Contributeur Dernière intervention 27 mars 2019 136
16 mai 2011 à 16:12
Re,

Oui en effet... c'est lorsque l'utilisateur ne fait jamais Entrer au clavier.
Je pense qu'il faut lui mettre un petit éditeur comme celui de comment ça marche, au lieu de laisser le textarea.

@+
0