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 :

Suppression avec des case a cocher ne fonctionne pas [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut Suppression avec des case a cocher ne fonctionne pas
    Bonjour,

    Je voudrais supprimer des enegistrements d'un tableau grace à dex checkbox mais voila j'ai du modifier mon script pour le mettre en place.

    Lorsque je valide la selection les valeur sont bien envoyé via l'url mais la suppression de la base ne se fait pas.

    J'avais une autre methode de suppression mais cela me force a chaque fois de refaire appel à la selection.

    Du coup j'ai choisi de mettre des case à cocher au bout de chaque ligne afin que les personnes puissent faire leur choix

    Ci-joint mon le script de ma page

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
     
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
    <?php
    if (!empty($titre)) //Si le titre est indiqué, on l'affiche entre les balises <title>
    {
        echo '<title> '.$titre.' </title>';
    }
    else //Sinon, on écrit forum par défaut
    {
        echo '<title> Fiche societe </title>';
    }
    ?>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" media="screen" type="text/css" title="Design" href="#" />
    </head>
     
    <body>
     
    <h3><center> Recherche des dûs d'un client</center></h3>
     
    <form method="POST" action="" name="formulaire">
     
    Numéro du client : <input type ="text" name= "numero" size="10">
       <input type="submit" name="submit" value="Envoyer" />
       <input type="reset" name="Effacer" value="Effacer" />
       </form>
    <br>
     
    <h3><center>Détail des factures dues par le client</center></h3>
     
     
    <?php
    include('inc_conexion.php');
    include ('suppression.php');
     
    if(!empty($_POST['numero']))
    {
    $id_numero=$_POST['numero'];
     
    $requete= "SELECT * FROM facture  WHERE id_numero LIKE '".$id_numero."'";
     
     
    //*******************************************************************************************//
    //  Récupération de la liste des facture du client (via une requête sur ma table facture     //
    //*******************************************************************************************//
     
     
    $ligne = "<table BORDER=1 BORDERCOLOR=#CCCCCC BGCOLOR=#fffccc CELLSPACING=0 CELLPADDING=1 WIDTH=98% ALIGN=left font-family:Verdana size=10px>
    			<td bgcolor='#669999'><b><u>Numero</u></b></td>
    			<td bgcolor='#669999'><b><u>Facture</u></b></td>
    			<td bgcolor='#669999'><b><u>Libelle</u></b></td>		
    			<td bgcolor='#669999'><b><u>Montant</u></b></td>
    			<td bgcolor='#669999'><b><u>Date facture</u></b></td>
    			<td bgcolor='#669999'><b><u>Date echeance</u></b></td>
    			<td bgcolor='#669999'><b><u>Relance</u></b></td>
    			<td bgcolor='#669999'><b><u>L 01</u></b></td>
    			<td bgcolor='#669999'><b><u>L 02</u></b></td>
    			<td bgcolor='#669999'><b><u>L 03</u></b></td>
    			<td bgcolor='#669999'><b><u>L 04</u></b></td>
    			<td bgcolor='#CC0033'><b><u>Suppr.</u></b></td>
    			
    			</tr>";
     
     
     
    $resultat = mysql_query($requete) or die ('Erreur '.$requete.' '.mysql_error());
     
     
     
    $total = 0;	
    $mont = 0;
     
     
    	while($dus = mysql_fetch_array($resultat)){
     
    		$id = $dus['id_numero'];
     
    		$facture = $dus['facture'];
    		$intitule = $dus['intitule'];
    		$montant = $dus['montant'];
    		$date_fact = $dus['date_fact'];
    		$date_echeance = $dus['date_echeance'];
    		$relance = $dus['relance'];
    		$l_01 = $dus['l_01'];
    		$l_02 = $dus['l_02'];
    		$l_03 = $dus['l_03'];
    		$l_04 = $dus['l_04'];				
    		$annee = $dus['annee'];
     
     
    				$mont = addslashes($dus['montant']);
     
    					$total += $mont;
     
    				$ligne .= "<tr>
    						<td><a href='./dus/fiche_pdv.php?numero=$id' tarPOST='_self'>".$id."</a></td>
    						<td>".$facture."</td>
    						<td>".$intitule."</td>
    						<td align='right'>".$montant."</td>
    						<td align='center'>".$date_fact."</td>
    						<td align='center'>".$date_echeance."</td>
    						<td align='center'>".$relance."</td>
    						<td align='center'>".$l_01."</td>
    						<td align='center'>".$l_02."</td>
    						<td align='center'>".$l_03."</td>
    						<td align='center'>".$l_04."</td>						
    <td align='center'><form method='GET' action=''><input type='checkbox' name='check[]' value=".$dus['facture']."/></td></tr>"; 
    	}
    $ligne .= "<tr><td colspan='3'>Total des dus du client N° $id_numero </td><td align='right'>".$total."</td>
    <td colspan='10' align='right'><input type='submit' value='delete' /></form></td></tr>";	
     
    echo $ligne;
     
     mysql_free_result($resultat);
     }
     
    else
    {
     
    echo "Merci de saissir un numero";
     
    }
    ?>
     
    </body>
    </html>
    Ma page de traitement

    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
     
     
    <?php
     
    include('inc_conexion.php');
     
    if (isset($_GET['check'])) 
    	{
    foreach ($_GET['check'] as $facture) 
    		{
     
     
     
                      $req = mysql_query("DELETE facture FROM facture WHERE facture  = '$facture'") or die (mysql_error());
     
    		}
    	}	
     
    ?>

    lors de la validation j'ai ceci qui passe par l'url

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    http://localhost/dus/index.php?check%5B%5D=08%2F08%2F030%2F&check%5B%5D=11am00111%2F
    Qui corresponde bien a mes factures selectionné pour la suppression

    Je vous remercie de votre aide

    Ci-joint une capture écran de ma page à l'écran

    Runcafre91

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Affiche tes requêtes pour voir exactement ce qui est executé.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Affiche tes requêtes pour voir exactement ce qui est executé.
    Bonjour,

    Merci de votre aide, j'ai fais un écho de la manière suivant a parti de ma page de traitement et j'ai les valeur suivant

    Script de traitement
    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
    21
     
     
    <?php
     
    include('inc_conexion.php');
     
    if (isset($_GET['check']) > 0) 
    	{
    foreach ($_GET['check'] as $facture) 
     
    echo $facture; 
    echo "<br>";
    		{
     
                      $req = mysql_query("DELETE facture FROM facture WHERE facture  = '$facture'") or die (mysql_error());
     
    			echo $req;
    		}
    	}	
     
    ?>

    Resultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Le numéro de la facture et le chiffre 1
    Runcafre91

  4. #4
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    tu ne dois pas obtenir :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DELETE facture FROM facture WHERE facture  = '$facture'"

    mais ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DELETE FROM facture WHERE facture  = '$facture'"

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    Bonjour,

    tu ne dois pas obtenir :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DELETE facture FROM facture WHERE facture  = '$facture'"

    mais ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DELETE FROM facture WHERE facture  = '$facture'"
    re,

    J'ai fais la modification et cela n'a rien changer, j'ai bien les éléments qui sont passés par l'url pour suppresion mais la suppression ne s'effectue pas.

    Quand je rappel le numéro les elements sont toujours présent

    Merci de votre aide

    Runcafre91

  6. #6
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    ton :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach ($_GET['check'] as $facture)

    a les {} mal placées, il ne s'applique que sur echo $facture;

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    ton :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    foreach ($_GET['check'] as $facture)

    a les {} mal placées, il ne s'applique que sur echo $facture;
    Re,

    J'ai modifié l'emplacement des accolades, mais voila cela ne fonctionne toujours pas

    voici le code modifié

    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
    21
    22
    23
     
    <?php
     
    include('inc_conexion.php');
     
    if (isset($_GET['check']) != 0) 
     
    	{
     
    foreach ($_GET['check'] as $facture) 
     
    		{
    echo $facture; 
    echo "<br>";
     
     
                      $req = mysql_query("DELETE FROM facture WHERE facture  = '$facture'") or die (mysql_error());
     
    			echo $req;
    		}
    	}	
     
    ?>
    Merci de votre aide

    Runcafre91

  8. #8
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    cette ligne là n'est pas correcte non plus :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (isset($_GET['check']) != 0)

    Tu testes si la variable est définie ou si elle est différente de 0 mais pas les 2 à la fois comme ca. Si tu veux tester cela, fais comme ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (isset($_GET['check']) && $_GET['check'] != 0)

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par Madfrix Voir le message
    cette ligne là n'est pas correcte non plus :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (isset($_GET['check']) != 0)

    Tu testes si la variable est définie ou si elle est différente de 0 mais pas les 2 à la fois comme ca. Si tu veux tester cela, fais comme ca :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (isset($_GET['check']) && $_GET['check'] != 0)
    Re,

    Ne fonctionne toujours pas, je sais pas d'ou viens le problème

    les valeur sont pourtant bien reprises à chaque fois (numero de la facture et le resuktat de requete : 1)

    Runcafre91

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    c'est plutôt ça que je voulais dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach ($_GET['check'] as $facture) 
    		{
                         $sql = "DELETE facture FROM facture WHERE facture  = '$facture'";
    echo $sql;
                      $req = mysql_query($sql);
    		}
    ensuite tu confirmes dans phpmyadmin que ce que tu as s'execute avec le résultat attendu ou non.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par sabotage Voir le message
    c'est plutôt ça que je voulais dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach ($_GET['check'] as $facture) 
    		{
                         $sql = "DELETE facture FROM facture WHERE facture  = '$facture'";
    echo $sql;
                      $req = mysql_query($sql);
    		}
    ensuite tu confirmes dans phpmyadmin que ce que tu as s'execute avec le résultat attendu ou non.
    Re,
    J'ai fais les modification que tu m'a donnée voici le script complet et le résultat de la requete

    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_conexion.php');
     
    if (isset($_GET['check']) AND (isset($_GET['check']) != 0))
     
    	{
     
    foreach ($_GET['check'] as $facture) 
    		{
                         $sql = "DELETE facture FROM facture WHERE facture  = '$facture'";
    echo $sql;
                      $req = mysql_query($sql);
    		}
     
    	}	
     
    ?>
    Resultat de la requete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DELETE facture FROM facture WHERE facture = '0614694/'DELETE facture FROM facture WHERE facture = '0623146/'DELETE facture FROM facture WHERE facture = '0637395/'DELETE facture FROM facture WHERE facture = '0637398/'DELETE facture FROM facture WHERE facture = '0637723/'
    Par contre comment je confirme la suppression a ce niveau

    Car a ce stade j'ai bien le résultat de la requete mais rien n'est supprimer

    Merci de votre aide

    Runcafre91

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    c'est normal le / a la fin ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #13
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    299
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2008
    Messages : 299
    Par défaut
    Citation Envoyé par sabotage Voir le message
    c'est normal le / a la fin ?
    Re,

    Non ce n'est pas normal, j'ai résolu le problème.

    C'était une balise de fin que j'ai oublié de retiré le slash.

    Merci encore et bon courrage

    Runcafre91

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

Discussions similaires

  1. Formulaire dynamique avec des cases de cocher (en JS)
    Par SIO_Lucie dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 09/06/2015, 09h31
  2. developper un tableau avec des cases a cocher
    Par Msysteme dans le forum C#
    Réponses: 14
    Dernier message: 05/10/2011, 17h36
  3. [VBS] Fenêtre avec des cases a cocher
    Par TGV6773 dans le forum VBScript
    Réponses: 2
    Dernier message: 24/01/2010, 10h12
  4. Réponses: 13
    Dernier message: 05/09/2006, 16h25
  5. Comment creer un choix multiple avec des cases a cocher ??
    Par pedrosystem dans le forum Access
    Réponses: 5
    Dernier message: 09/03/2006, 10h36

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