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 :

Impossible de supprimer un enregistrement dans une table [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    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
    Points : 103
    Points
    103
    Par défaut Impossible de supprimer un enregistrement dans une table
    Bonjour,

    Je dois faire la mise à jour d'une table mais lorsque je fais ma requete de suppression il est impossible de supprimer l'enregistrement.

    Voici mon code
    la page avec le formulaire
    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
     
     
    <?php
    session_start();
    ?>
    <a href='../index.php'>Retour index</a>
     
    <h3><center> Mise à jour des relance</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" />
       </form>
    <br>
     
     
    <?php
    include('../inc/inc_connexion.php');
    include('maj_table.php');
     
    if(!empty($_POST['numero']))
    {
    $id_numero=$_POST['numero'];
     
    $req_fact="Select * FROM relance 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>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($req_fact) or die ('Erreur '.$req_fact.' '.mysql_error());
     
    	while($dus = mysql_fetch_array($resultat)){
     
    		$id = $dus['id_numero'];
    		$facture = addslashes($dus['facture']);
    		$relance = addslashes($dus['relance']);
    		$l_01 = addslashes($dus['l_01']);
    		$l_02 = addslashes($dus['l_02']);
    		$l_03 = addslashes($dus['l_03']);
    		$l_04 = addslashes($dus['l_04']);
     
    				$ligne .= "<tr>
    						<td>".$id."</td>
    						<td>".$facture."</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='POST' action=''><input type='checkbox' name='check[]' value=".$dus['id_numero']."></td></tr>"; 
    	}
    $ligne .= "<tr><td colspan='10' align='right'><input type='submit' value='delete'></form></td></tr>";	
     
    echo $ligne;
     
     mysql_free_result($resultat);
     }
     
    else
    {
     
    }
    ?>
    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
    20
     
     
    <?php
     
    include('../inc/inc_connexion.php');
     
    if (isset($_post['check']) AND (isset($_post['check']) != 0))
     
    	{
     
    foreach ($_post['check'] as $facture) 
    		{
                         $sql = "DELETE facture FROM relance WHERE facture = '$facture'";
     
    		echo $sql;
                      $req = mysql_query($sql) or die ('Erreur '.$sql.' '.mysql_error());
    		}
     
    	}	
    ?>
    Je vous remercie de votre aide car cela devient urgent je dois tout finalise d'ici demain soir

    Runcafre91

  2. #2
    Membre éclairé
    Avatar de hornetbzz
    Homme Profil pro
    Directeur commercial
    Inscrit en
    Octobre 2009
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Directeur commercial

    Informations forums :
    Inscription : Octobre 2009
    Messages : 482
    Points : 773
    Points
    773
    Par défaut
    Salut,

    Peut-être une piste: je crois que PHP est sensible à la casse, donc $_post n'est pas la même chose que $_POST.

    EDIT1:
    je n'ai pas vu ton formulaire envoyer quoique ce soit à ta page de traitement, j'ai peut être raté qq chose
    Ni ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="POST" action="TA_PAGE_DE_TRAITEMENT" name="formulaire">
    et là non plus
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td align='center'><form method='POST' action='XXX'><input type='checkbox' name='check[]' value=".$dus['id_numero']."></td></tr>";
    ou alors c'est la même page ?

    EDIT2:
    Dans ta page de traitement, je crois aussi que ce test est incorrect :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (isset($_post['check']) AND (isset($_post['check']) != 0))
    Si tu regardes la doc, isset — Détermine si une variable est définie et est différente de NULL. Or je ne suis pas sûr que cela soit ce que tu veuilles vérifier.

  3. #3
    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
    Points : 44 155
    Points
    44 155
    Par défaut
    Pour être précis :

    - c'est effectivement $_POST

    isset($_post['check'])
    et
    isset($_post['check']) != 0

    c'est le même test étant donné que isset renvoit TRUE ou FALSE et que FALSE == 0
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    2
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Février 2010
    Messages : 2
    Points : 3
    Points
    3
    Par défaut
    Bonjour,

    Es tu sur que la syntaxe de la requête est bonne ?

    En ce qui me concerne je pense plutôt que c'est :

    DELETE FROM relance WHERE facture = '$facture'";

    Bonne fin de journée à vous

  5. #5
    Membre régulier
    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
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par renaudin Voir le message
    Bonjour,

    Es tu sur que la syntaxe de la requête est bonne ?

    En ce qui me concerne je pense plutôt que c'est :

    DELETE FROM relance WHERE facture = '$facture'";

    Bonne fin de journée à vous
    BOnjour,

    C'est après un peux de retard que je j'ai testé et fait les modifications selon vos consigne.
    Maintenant j'ai droit à une erreur un peux particulier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    DELETE facture FROM relance WHERE facture = '10STF0001'Erreur DELETE facture FROM relance WHERE facture = '10STF0001' Unknown table 'facture' in MULTI DELETE
    Je sais a peux près d'ou viens l'erreur mais voila rian a faire.

    En fait j'ai une autre table relier à la table relance mais quand je fais une suppréssion dans la table facture la mise à jour ne se fait pas dans la table relance.

    Merci de votre aide

    Runcafre91

  6. #6
    Membre émérite 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
    Points : 2 566
    Points
    2 566
    Par défaut
    Salut,

    comme te l'a dit Renaudin la syntaxe de ton delete est mauvaise. Remplace par

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    mysql_query('DELETE FROM relance WHERE facture=\'.$facture.\'');

    De plus je suis pas sur que tu comprennes la finalité du DELETE à vouloir toujours rajouter un champs devant le FROM. DELETE sert à supprimer une ligne (enregistrement) et non pas une colonne (champs)

    @+

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

Discussions similaires

  1. Supprimer des enregistrements dans une table
    Par nomade333 dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 30/03/2012, 20h21
  2. [AC-2010] Supprimer un enregistrement dans une table
    Par toumack dans le forum VBA Access
    Réponses: 2
    Dernier message: 16/02/2012, 07h43
  3. Réponses: 1
    Dernier message: 18/03/2010, 14h29
  4. [PHP 4] supprimer un enregistrement dans une table
    Par fraisa1985 dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2009, 11h09
  5. Réponses: 4
    Dernier message: 22/03/2007, 18h28

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