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

Langage PHP Discussion :

Suppression ligne par ligne avec confirmation


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Points : 52
    Points
    52
    Par défaut Suppression ligne par ligne avec confirmation
    Salut,
    j'ai débuté en php.
    voilà notre pbme, j'ai crée en php une code pour supprimer une ligne précise de table demande après une confirmation en javascript,mais lorsque je clique sur supprimer cet enregistrement,tous les enregistremnts de base sont supprimé.
    Voici le code:
    la page supsdemande.php définir la fonction confirme en js et afficher le contenu de table:
    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
     
    <script language="javascript">
          function confirme( identifiant,art,date,rep )
          {
            var confirmation = confirm( "Voulez vous vraiment supprimer cet enregistrement?" ) ;
    	if( confirmation )
    	{
    	  document.location.href = "supdde.php?cde_sce="+identifiant ;
    	}
          }
        </script>
      </head>
    <body>
      <?php
     
     //connection au serveur
    $connect = mysql_connect( "localhost", "root", "" ) or die('erreur de connexion');
     
      //sélection de la base de données:
    $db  = mysql_select_db( "gestion_stock" ) or die('base introuvable');
      //requête de selection
     $aff="select * from demande order by 'desig_sce'";
    $reqt=mysql_query($aff) or die ('erreur sql'.$reqt.'<br>'.mysql_error());
     
     
    while($sql=mysql_fetch_object($reqt))
       {
     
    		echo($sql->cde_sce." ".$sql->desig_sce." ".$sql->type_sce." ".$sql->cde_art." ".$sql->desig_art." ".$sql->qte_dde." ".$sql->date_dde." ".$sql->resp_dde." ");
     
     
     
          printf("<a href=\"#\" onClick=\"confirme('".$sql->cde_sce."')\" >supprimer cet enregistrement</a><br>\n") ;
     
     
     }
     ?>
    </body>
    </html>
    et la page supdde.php supprimer le ligne correspond:
    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
    <?php
      //connection au serveur:
      $cnx = mysql_connect( "localhost", "root", "" ) or die("erreur de connexion");
     
      //sélection de la base de données:
      $db = mysql_select_db( "gestion_stock" ) or die("la base est introuvable");
     
      //récupération de la variable qui va nous permettre de savoir quel enregistrement supprimer:
      $cde_sce  = $_GET["cde_sce"] ;
      /* $cde_art  = $_GET["cde_art"] ;
        $date_dde  = $_GET["date_dde"] ;
    	 $resp_dde  = $_GET["resp_dde"] ;*/
      //requête SQL:
      $sql = "DELETE 
                FROM demande
    	    WHERE cde_sce = '$cde_sce' " ;
     
      //exécution de la requête:
      $requete = mysql_query( $sql) ;
     
      //affichage des résultats, pour savoir si la suppression a marchée:
      if($requete)
      {
        echo('<script language="javascript">alert("La suppression à été correctement effectuée");</script>') ;
      }
      else
      {
        echo('<script language="javascript">alert("La suppression à échouée");</script>');
      }
    ?>
    MERCI BIEN D'AVANCE

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Ca me parrait plutot impossible mais tu peux toujours controler les requetes qui sont executés avec un simple echo :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = "DELETE 
                FROM demande
    	    WHERE cde_sce = '$cde_sce' " ;
    echo $sql;
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    Salut,
    Essaye ceci :
    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
     
    <html>
    <head></head>
    <body>
      <?php
     
     //connection au serveur
    $connect = mysql_connect( "localhost", "root", "" ) or die('erreur de connexion');
     
      //sélection de la base de données:
    $db  = mysql_select_db( "gestion_stock" ) or die('base introuvable');
      //requête de selection
     $aff="select * from demande order by 'desig_sce'";
    $reqt=mysql_query($aff) or die ('erreur sql'.$reqt.'<br>'.mysql_error());
     
     
    while($sql=mysql_fetch_object($reqt))
       {
     
    		echo($sql->cde_sce." ".$sql->desig_sce." ".$sql->type_sce." ".$sql->cde_art." ".$sql->desig_art." ".$sql->qte_dde." ".$sql->date_dde." ".$sql->resp_dde." ");
     
    	?>
    	<a href="supdde.php?cde_sce="<?php echo $sql->cde_sce ?> onClick="confirm('Suppirmer ?')" >supprimer cet enregistrement</a><br>
    	<?php
     
     }
     ?>
    </body>
    </html>

  4. #4
    Membre du Club Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Points : 52
    Points
    52
    Par défaut
    j'essaie ça mais rien ne change...

  5. #5
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    A moins que tes enregistrements aient tous la même valeur de "cde_sce", tout semble ok et devrait marcher...
    Tu peux aussi ajouter un "mysql_affected_rows()" pour voir combien de lignes tu effaces avec ta requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // ....
     
    $sql = "DELETE 
                FROM demande
    	    WHERE cde_sce = '$cde_sce' " ;
     
      //exécution de la requête:
      $requete = mysql_query( $sql) ;
      printf("Lignes effacées : %d\n", mysql_affected_rows());
    // ....

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    que te retourne le echo $sql de sabotage? la requete est bien formée ?
    Stay in Bed .. Save Energy

  7. #7
    Membre du Club Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    Merci bien pour vos réponses,
    voilà je controler la requetes avec echo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $sql = "DELETE 
                FROM demande
    	    WHERE cde_sce = '$cde_sce' limit 1" ;
        echo $sql;
    et j'obtenir le resultat suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DELETE FROM demande WHERE cde_sce = '' limit 1
    la suppression de la 1ère ligne même si je selectionne la dernière

  8. #8
    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
    Oui donc ca ne te supprime pas tout, d'ailleurs ca ne devrais rien te supprimer a moins que tu aies des lignes vides.

    Ton guillemet et mal placé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ?>
    	<a href="supdde.php?cde_sce=<?php echo $sql->cde_sce ?>" onClick="confirm('Suppirmer ?')" >supprimer cet enregistrement</a><br>
    	<?php
    est ce que ta fonction javascript confirm() que tu nous a montré et la fonction confirme() qui est ici sont la meme ?
    parce que confirm() prend comme argument l'identifiant a supprimer et non un texte à afficher.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Points : 52
    Points
    52
    Par défaut
    Bonjour sabotage,
    non les deux sont différentes,
    voilà la fonction confirm prend le text à afficher comme argument:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    confirm( "Voulez vous vraiment supprimer cet enregistrement?" ) ;
    ...
    ici le pbme pour notre code qui la page 'supsdemande.php' ne transforme pas le cde_sce càd $_GET['cde_sce'] ne retourne rien et je ne sais pas comment le résolu

    PLEASE HELP ME

  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
    Points : 44 155
    Points
    44 155
    Par défaut
    Est ce que tu as pris en compte la correction que je t'ai fournie ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    Fais bouton droit sur un lien "supprimer cet enregistrement" puis "Copier l'adresse du lien" dans le menu contextuel et colle nous l'adresse copiée ici. Ceci juste pour s'assurer que ton lien est bien correcte que tu envoies bien la valeur de "cde_sce".

  12. #12
    Membre du Club Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Points : 52
    Points
    52
    Par défaut

    oui sabotage,mais cet code retourne une erreur
    merci bien Sowa mais le pbme ici cde_sce ne transforme pas entre les 2 pages,
    Oh, il y a aure chose: la même code, sauf qques modification au niveau de vbles, s'execut bien,par exemple pour supprimer,1 service ou article?????

  13. #13
    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
    oui sabotage,mais cet code retourne une erreur
    qui est ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  14. #14
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    Citation Envoyé par memo11 Voir le message

    oui sabotage,mais cet code retourne une erreur
    Quelle est l'erreur retournée ?
    merci bien Sowa mais le pbme ici cde_sce ne transforme pas entre les 2 pages,
    Là j'ai pas bien compris ce que tu veux dire.

  15. #15
    Membre du Club Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Points : 52
    Points
    52
    Par défaut
    voilà l'erreur:
    Parse error: parse error, unexpected T_STRING in C:\Program Files\EasyPHP 2.0b1\www\supsdemande.php on line 39

  16. #16
    Membre du Club Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Points : 52
    Points
    52
    Par défaut
    Sowa,
    càd que $_GET['cde_sce'] est vide autrement dis que la page suspdemande.php
    n'envoie pas le code au supdde.php

  17. #17
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    Et qu'est ce que tu as à la ligne 39 ?

  18. #18
    Membre du Club Avatar de memo11
    Profil pro
    Étudiant
    Inscrit en
    Août 2009
    Messages
    132
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2009
    Messages : 132
    Points : 52
    Points
    52
    Par défaut
    voilà l39:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf('<a href="supdde.php?cde_sce = <?php echo $sql->cde_sce ?>" onClick="confirm('Suppirmer?')" >supprimer cet enregistrement</a><br>');

  19. #19
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo'<a href="supdde.php?cde_sce ='.$sql->cde_sce.'" onclick="return confirm(\'Suppirmer?\')" >supprimer cet enregistrement</a><br>';
    Un erreur très lointain:
    function confirme( identifiant,art,date,rep )
    printf("<a href=\"#\" onClick=\"confirme('".$sql->cde_sce."')\" >supprimer cet enregistrement</a><br>\n") ;
    Dans la déclaration de la fonction confirme, elle a trois paramètres et dans l'appel, elle n'en a qu'une seule.

  20. #20
    Membre du Club
    Inscrit en
    Décembre 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 53
    Points : 61
    Points
    61
    Par défaut
    essaye avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf('<a href="supdde.php?cde_sce=%d" onClick="confirm(\'Suppirmer?\')" >supprimer cet enregistrement</a><br>', $sql->cde_sce);
    ou tout simplement ceci (comme disais sabotage) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ?>
    	<a href="supdde.php?cde_sce=<?php echo $sql->cde_sce ?>" onClick="confirm('Suppirmer ?')" >supprimer cet enregistrement</a><br>
    	<?php
    Tu remarqueras que dans le code de sabotage, tu n'as pas la fonction "printf" que tu as là ligne 39 que tu as collée ici.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. lire une fichier texte ligne par ligne avec c#
    Par dridi naim dans le forum C#
    Réponses: 2
    Dernier message: 17/02/2011, 22h56
  2. Lecture de fichier ligne par ligne avec caractères spéciaux
    Par Australia dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 28/11/2007, 16h30
  3. Probleme affichage avec un GtkTextView (affichage ligne par ligne)
    Par Marmoccelle dans le forum GTK+ avec C & C++
    Réponses: 9
    Dernier message: 22/03/2007, 15h42
  4. Lire un fichier ligne par ligne avec Awk
    Par Krispy dans le forum Linux
    Réponses: 8
    Dernier message: 07/09/2006, 16h14
  5. Réponses: 20
    Dernier message: 09/02/2006, 10h45

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