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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé 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
    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
    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 averti
    Inscrit en
    Décembre 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 53
    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 confirmé 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
    Par défaut
    j'essaie ça mais rien ne change...

  5. #5
    Membre averti
    Inscrit en
    Décembre 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Décembre 2002
    Messages : 53
    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 Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    que te retourne le echo $sql de sabotage? la requete est bien formée ?

  7. #7
    Membre confirmé 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
    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

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

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, 21h56
  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, 15h30
  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, 14h42
  4. Lire un fichier ligne par ligne avec Awk
    Par Krispy dans le forum Linux
    Réponses: 8
    Dernier message: 07/09/2006, 15h14
  5. Réponses: 20
    Dernier message: 09/02/2006, 09h45

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