Résolu Supprimer dans BDD avec 'checkbox'

Solutions (24)
Tags :
  • Interface
  • Mot de passe
  • Programmation
|
Bonjour à tous,

Je viens solliciter votre aide car actuellement, j'ai une interface qui permet de lister les données présentes dans ma base de données et de pouvoir, en sélectionnant à l'aide d'un bouton radio, le supprimer de la base de données. Le problème est qu'avec les boutons radios, nous pouvons supprimer qu'une donnée à la fois, je souhaiterais pouvoir supprimer plusieurs données à la fois, et donc utiliser des check box mais je ne sais pas trop comment modifier mon code pour faire ça. Ci dessous mon code, si vous pouvez m'aider :

  1. //connexion à la base de données
  2. //paramètres : serveur, utilisateur, mot de passe, base de données
  3. $link = DBconnect($serveur,$user,$mdp,$bdd);
  4.  
  5. $requete = 'SELECT title FROM document';
  6. $resultat = mysql_query($requete) or die ('Ex&eacutecution de la requête impossible');
  7. echo "<P align='center'><FONT SIZE=5 COLOR='#377693'><span style='font-variant: small-caps;'><B>Supprimer un Document</B></SPAN></FONT><BR><BR></P>";
  8. echo "<form action='supprss.php' method='post'>";
  9. while ($liste=mysql_fetch_array($resultat))
  10. {
  11. print '<div style="width:50%;margin:auto;"><p style="text-align:justify;">'.'<input type="radio" value="'.$liste['title'].'" name="title">'.$liste['title'].'</p></div>'.'</radio>';
  12. }
  13. echo '<BR><BR>';
  14. echo '<P align="center"><input type="submit" value="Supprimer le document"></form></P>';


Merci d'avance pour voter aide !
Contenus similaires
  • Autres pages sur : supprimer bdd checkbox
Meilleure solution
partage
|
Arf oui :) 
  1. echo '<p style="text-align:center;"><span style="font-weight: bold; font-size: 1.2em;">Vous avez supprimé le document suivant : </span><span style="text-decoration: italic; font-weight: bold;">', implode('<br />', $title), '</span></p>';
  • Commenter cette solution |
Score
0
òh
òi
|
En fait, le but est d'arriver à générer une requête qui soit de la forme:
  1. INSERT INTO table (champ1, champ2, champ3) VALUES
  2. ('val1champ1', 'val1champ2', 'val1champ3'),
  3. ('val2champ1', 'val2champ2', 'val2champ3'),
  4. ('val3champ1', 'val3champ2', 'val3champ3'),
  5. ('val4champ1', 'val4champ2', 'val4champ3');
  • Commenter cette réponse |
Score
0
òh
òi
|
SI j'avais plusieurs champs dans cette table ça donnerait quoi ? (je comprends rien à la syntaxe ...)
  • Commenter cette réponse |
Score
0
òh
òi
|
Si il n'y a qu'un champ title. Mais c'est bon ça a l'air de marcher avec ta requête !
Merci
  • Commenter cette réponse |
Score
0
òh
òi
|
J'imagine que ta table documents_suppr ne contient pas qu'un champ titre ?
Il faut donc faire:
  1. mysql_query("INSERT INTO documents_suppr (title) VALUES ('".implode("'), ('", $title) . "');");
  • Commenter cette réponse |
Score
0
òh
òi
|
Je ne connais pas le principe de "requête étendue" comment mettre ça en place ?

Moi pour l'instant j'ai ça :

  1. $title = $_POST['title'];
  2. mysql_query("DELETE FROM document WHERE title IN ('".implode('\', \'', $title)."')" );
  3. mysql_query("INSERT INTO documents_suppr VALUES ('$title')");


Le DELETE fonctionne mais pas le INSERT
  • Commenter cette réponse |
Score
0
òh
òi
|
Oui, c'est possible, en créant une requête SQL étendue. Je le fais assez souvent.
  • Commenter cette réponse |
Score
0
òh
òi
|
est-ce possible avec cette technique (à savoir implode) d'insérer plusieurs infos à la fois (au lieu de supprimer plusieurs infos à la fois).

Merci d'avance
  • Commenter cette réponse |
Score
0
òh
òi
|
Meilleure réponse sélectionnée par boss183.
  • Commenter cette réponse |
Score
0
òh
òi
|
youhooouuuu ça marche !!!

merci beaucoup Crazycat !
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Il y a un mix de " dans le echo et les attributs HTML
  • Commenter cette réponse |
Score
0
òh
òi
|
Je suis vraiment désolé Crazycat mais j'ai toujours la même erreur ^^

Je vois sous Notepad ++ (avec les colorations) qu'il y a un problème de " ou ' mais je ne sais pas trop comment faire
  • Commenter cette réponse |
Score
0
òh
òi
|
Oui, j'ai laissé un "." là où il fallait une ",":
  1. echo "<p style="text-align:center;"><span style="font-weight: bold; font-size: 1.2em;">Vous avez supprimé le document suivant : </span><span style="text-decoration: italic; font-weight: bold;">", implode('<br />', $title), "</span></p>";
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci pour ta réponse mais j'ai le mêm problème que tout à l'heure la syntaxe doit pas être bonne


Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\xampp\htdocs\supprss.php on line 145

  • Commenter cette réponse |
Score
0
òh
òi
|
  1. echo "<p style="text-align:center;"><span style="font-weight: bold; font-size: 1.2em;">Vous avez supprimé le document suivant : </span><span style="text-decoration: italic; font-weight: bold;">", implode('<br />', $title)."</span></p>";
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci bcp crazycat !!! ça marche !
Encore juste une petite question, comment je pourrais faire pour afficher un message du type :

Vous avez supprimé :
donnée 1
donnée 2
....

echo "<p align='center'><font size=4><BR><B>Vous avez supprimé le document suivant : </B></FONT></P>"."<p align='center'><I><B>".$title."</I></B></P>";

J'ai mis ça mais ça m'affiche array

Pouvez-vous m'aider ?

Merci
  • Commenter cette réponse |
Score
0
òh
òi
|
Comme je disais peu avant toi:
crazycat@idn a dit :
J'ai effectivement fait une petite erreur:
  1. mysql_query("DELETE FROM document WHERE title IN ('".implode('\', \'', $title)."')" );


  • Commenter cette réponse |
Score
0
òh
òi
|
non j'ai testé ça ne marche pas
  • Commenter cette réponse |
Score
0
òh
òi
|
J'ai effectivement fait une petite erreur:
  1. mysql_query("DELETE FROM document WHERE title IN ('".implode('\', \'', $title)."')" );
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
tu l'as testé ou tu dis ça comme ça ?
Parce qu'ils sont échappés...
  • Commenter cette réponse |
Score
0
òh
òi
|
crazycat@idn a dit :
Essaye avec:
  1. mysql_query("DELETE FROM document WHERE title IN ('".implode('\', \'', $title).'" );


merci mais il doit y avoir un souci dans la syntaxe : comme tu utilises deux fois les guillemets
  • Commenter cette réponse |
Score
0
òh
òi
|
Essaye avec:
  1. mysql_query("DELETE FROM document WHERE title IN ('".implode('\', \'', $title).'" );
  • Commenter cette réponse |
Score
0
òh
òi
|
Merci pour ta réponse !

par contre ça ne marche pas, j'ai un problème avec ma requête pour supprimer.

  1. $title = $_POST['title'];
  2. mysql_query("DELETE FROM document WHERE title='$title'");


J'ai essayé en mettant : WHERE title='$title[]' ... pas mieux

merci d'avance
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Salut,

Il faut que tu remplaces le <input type="radio" value="..." name="title"> par <input type="checkbox" value="..." name="title[]" />
De telle manière que tu aies une checkbox à la place de ton bouton radio.
Et puis ajouter des [] au nom, de telle manière que tu récupères un tableau avec toutes les valeurs cochées, que tu auras dans $_POST['title'], que tu auras à parcourir pour avoir toutes les valeurs.
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS