IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Supprimer les éléments sélectionnés avec une case à cocher


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut Supprimer les éléments sélectionnés avec une case à cocher
    Hello! Voilà je ne trouve pas de solution pour supprimer des données d'une table Mysql.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    <?php include('inc/connexion.php'); 
    $sql = 'SELECT * FROM links';
     
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo '<table><tr><td>Nom</td><td>Url</td><td>Supprimer</td></tr>';
    while($data = mysql_fetch_assoc($req))
        {
    	echo '<tr><td>'.$data['nom'].'</td>';
    	echo '<td>'.$data['url'].'</td>';
    	echo '<td><input name="'.$data['id'].'" type="checkbox" value="" /></td>';
    	echo '</tr>';
    	 }
    echo '</table>';
    mysql_close();
     
    ?>
    Je voudrais supprimer les checkbox sélectionner! merciii

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Bonjour!

    Le code que tu donnes permet de lister les données d'une base, il ne correspond pas du tout au code de suppression des données dans la base.
    Maintenant si c'est parce que tu ne l'as pas encore fait on peut te donner des idées. Il faut que tes checkboxes soit placées dans un formulaire html qui ca aussi avoir un bouton. Quand tu cliques sur ce bouton ca se charge de poster le formulaire et d'envoyer la liste des checkboxes qui sont cochées, tu auras alors les id des lignes à supprimer dans ta base et tu pourras faire ta requete de DELETE FROM...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    Oui je cherche des idées pour supprimer les id séléctionner!
    Je vois pour le form mais pour récuperer la liste des checkbox séléctionnées comment faire?

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Salut,

    Pour récupérer une liste (checkbox), il faut:
    1. Nommer ta checkbox ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" name="maListe[]" value="'.$date[id].'" />'.$date[id].'
    Les crochets sont importants, ils vont permettre de récupérer le tableau contenant les valeurs des cases cochées.

    2. Dans ta page qui va faire la suppression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $liste = $_POST['maListe'];
    Ensuite tu n'a plus qu'à faire une boucle pour supprimer chaque éléments de la liste.

    Voilà, bon courage

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    Ok je test merci

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    re ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	echo '<td><input type="checkbox" name="maListe[]" value="'.$date[id].'" /></td>';
    	echo '</tr>';
    	 }
    echo '</table>';
    echo '<input type="submit" name="button" id="button" value="Supprimer" /></form>';
    Voilà le bout que j'ai rajouter

    pour testé j'essai d'afficher la valeur de MaListe dans la page qui supprime mais il affiche Array ! ( C'est un tableau comment faire )

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Il te faut parcourir le tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $liste = $_POST['maListe'];
    for($i=0;$i<sizeof($liste);$i++)
      print $liste[$i];
    Parcourir le tableau, c'est aller du début ($i=0) à la fin du tableau (sizeof($liste)).
    Ensuite tu affiches chaque élément du tableau: l'éléments à la position i ($liste[$i]).

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    Il n'affiche rien! mais quand je met
    il répete $liste[$i] autant de fois que j'ai sélectionner une checkbox! donc ca marche mais j'arrive pas a récuperé la valeur de liste[$i]

  9. #9
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    entre quote simple ' ' les variables php ne sont pas interprétées.
    De plus, entre quote doubles " " ce sont les tableaux qui ne sont pas interprétés.
    Il faut donc faire
    ou

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    ça ne marche pas non plus ! je te refile mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <?php include('inc/connexion.php'); 
    $sql = 'SELECT * FROM links';
     
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    echo '<form action="inc/delLinks.php" method="post" name="delLinks">';
    echo '<table><tr><td>Nom</td><td>Url</td><td>Supprimer</td></tr>';
    while($data = mysql_fetch_assoc($req))
        {
    	echo '<tr><td>'.$data['nom'].'</td>';
    	echo '<td>'.$data['url'].'</td>';
    	echo '<td><input type="checkbox" name="maListe[]" value="'.$date[id].'" /></td>';
    	echo '</tr>';
    	 }
    echo '</table>';
    echo '<input type="submit" name="button" id="button" value="Supprimer" /></form>';
     
    mysql_close();
     
    ?>
    et pour le fichier delLinks.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?php
     
    $liste = $_POST['maListe'];
    for($i=0;$i<sizeof($liste);$i++) 
    {
    echo "{$liste[$i]}";  
    }
    ?>

  11. #11
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    et sans les quotes?

    EDIT: quand tu dis que ca ne marche pas je suppose que ca n'affiche rien en fait?
    tu utilises $date[id] dans ta boucle au lieu de $data['id']

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Juste pour tester si ton tableau contient quelque chose, essai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    if(sizeof($liste)<1)
     print "vide";

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    Youpie! ça marche! désolé pour l'erreur c'est parceque j'ai copier collé sans réfléchir se que tu ma dis!

    le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
    include('connexion.php'); 
    $liste = $_POST['maListe'];
    for($i=0;$i<sizeof($liste);$i++)
    {
    $sql = "DELETE FROM links WHERE id=$liste[$i]";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    }
     
    ?>
    Si y'a mieux n'ésite pas !^^

  14. #14
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 137
    Points : 160
    Points
    160
    Par défaut
    Désolé, autant pour moi :-)

  15. #15
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par keishah
    Si y'a mieux n'ésite pas !^^
    Un poil mieux :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    include('connexion.php'); 
    $liste = $_POST['maListe'];
    $sql = "DELETE FROM links WHERE id IN (" . explode(',', $liste).")";
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    }
    Ca va te permettre de ne faire qu'une seule requete SQL a chaque fois.

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    Merci mais erreur
    Parse error: syntax error, unexpected '}' in C:\wamp\www\djsonero\admin\inc\delLinks.php on line 5
    il manque l'ouverture je pense

  17. #17
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Citation Envoyé par keishah
    Merci mais erreur
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error: syntax error, unexpected '}' in C:\wamp\www\djsonero\admin\inc\delLinks.php on line 5

    il manque l'ouverture je pense
    non faut l'enlever, elle traine du copier coller, désolé! Mais tu aurais pu tester sans

  18. #18
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    j'avais testé sans mais =
    Erreur SQL !
    DELETE FROM links WHERE id IN (Array)
    Unknown column 'Array' in 'where clause'

  19. #19
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    j'ai pas les yeux en face des trous, désolé !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $liste = $_POST['maListe']; 
    $sql = "DELETE FROM links WHERE id IN (" . implode(',', $liste).")"; 
    $req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

  20. #20
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    110
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 110
    Points : 50
    Points
    50
    Par défaut
    Merciiii ! ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 4] Sélectionner les lignes d'un formulaire avec une case à cocher
    Par shenmicke dans le forum Langage
    Réponses: 7
    Dernier message: 05/08/2009, 14h56
  2. Etat avec une case à cocher sur une requête difficile
    Par marcoO dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 10/01/2007, 14h21
  3. Imprimer champs sélectionnés par une case à cocher
    Par nixax dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/12/2006, 22h09
  4. Affichage de nouveau champ de formulaire avec une case à cocher
    Par breizhgen dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 04/09/2006, 21h46
  5. Réponses: 2
    Dernier message: 07/07/2006, 01h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo