Supression BDD

Résolu
TRUNCKS Messages postés 1019 Date d'inscription   Statut Membre Dernière intervention   -  
rescue Messages postés 1039 Date d'inscription   Statut Contributeur Dernière intervention   -
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   Statut Contributeur Dernière intervention   136
 
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 1019 Date d'inscription   Statut Membre Dernière intervention   7
 
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   Statut Contributeur Dernière intervention   136
 
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 1019 Date d'inscription   Statut Membre Dernière intervention   7
 
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   Statut Contributeur Dernière intervention   136
 
Bonjour,

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

@+
0
TRUNCKS Messages postés 1019 Date d'inscription   Statut Membre Dernière intervention   7
 
<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   Statut Contributeur Dernière intervention   136
 
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 1019 Date d'inscription   Statut Membre Dernière intervention   7
 
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   Statut Contributeur Dernière intervention   136
 
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