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 d'un élément de la BDD [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Par défaut Suppression d'un élément de la BDD
    Bonjour à tous,


    Je rencontre un soucis lorsque je désire supprimer un élément de ma base de donnée. En effet, j'ai un menu déroulant qui me propose différents choix, je dois cliquer sur "valider", ensuite un autre bouton "supprimer" apparait pour faire office de confirmation, et dés lors que je cliquer sur ce bouton, normalement ça doit le supprimer de ma base de donnée, or ce n'est pas le cas.


    Le code pour afficher le menu déroulant :

    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
    <body>
        <h2>
          Supprimer une plage :
        </h2>
        <div id="c">
          Etape 0 : Choisir La plage à supprimer
        </div>
    	<?PHP
     include_once('sql.php');
    	?>
       <form action="vider.php" method="post">
          <select value="" name="sr2sup" id="sr2sup">
    	  <?PHP
    	$db = mysql_connect($MYSQL_IP,$MYSQL_USER,$MYSQL_PASS);
    	mysql_select_db('ma_bdd',$db);
    					$sql='select sr_id,sr_libelle,sr_ad_basse from SOUSRESEAU';
    					$req=  mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
     
    					while($data = mysql_fetch_array($req)){
    					echo '<option value="'.$data["sr_id"].'">'.$data["sr_libelle"].' '.$data["sr_ad_basse"].'</option>'; }
    					mysql_close(); 
    					?>
     
     
    	  <input type="button" value="valider" name="vals0" id="vals0" class="buttonVal" onClick="valider('steps1');" >
     
     
     
     
          <br>
     
     
    	<div id="steps1" style="visibility:hidden">
    		<div id="attention">
    		Attention : Cette action effacera toutes les adresses et leurs données associées dans la plage choisie <br /> (sauvegarde fortement conseillée).
     
    		<input type="submit" value="Supprimer" name="gosup" id="gosup" style="background-color: red">
     
    		</form>
    		</div>
    	</div>

    La requête de suppression qui se trouve sur une autre page, vider.php :

    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
    <?PHP
     
     
    $sr_id=isset($_POST['sr2sup']);
    include_once('sql.php');
    mapi_init($MYSQL_IP,$MYSQL_USER,$MYSQL_PASS);
     
    /*$sql0="Begin";
    $req=  mysql_query($sql0) or die('Erreur SQL !<br>'.$sql0.'<br>'.mysql_error());*/
     
    $sql1='delete FROM ADRESSEIP WHERE sr_id = '.$sr_id.' ';
    $req=  mysql_query($sql1) or die('Erreur SQL !<br>'.$sql1.'<br>'.mysql_error());
    $sql2='delete FROM SOUSRESEAU WHERE sr_id = '.$sr_id.' ';
    $req=  mysql_query($sql2) or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());
     
    /*$req=mysql_query('COMMIT')or die('Erreur SQL !<br>'.$sql2.'<br>'.mysql_error());*/
     
    echo '<p>LA PLAGE A ETE TOTALEMENT EFFACEE!</p>';
    echo "<a href=\"maintenance.php\">Retour au menu de maintenance.";
    echo '<br />';
     
    mysql_close(); 
     
     
     
    ?>

    Merci à tous ceux qui m'aideront

  2. #2
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut
    T'as une erreur a nous montrer ?

    Peut être un soucis de quote de de guillemets, t'as essayé en mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1="delete FROM ADRESSEIP WHERE sr_id = '$sr_id'";

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Par défaut
    Merci de ta réponse

    Oui j'ai testé, mais toujours pareil. Il n'y a pas d'erreur particulière, il m'affiche bien " LA PLAGE A ETE TOTALEMENT EFFACEE ", mais lorsque je reviens sur ma page pour vérifier, l'élément est toujours présent dans la liste déroulante.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut
    Pardon je fais pas attention.

    Le problème c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sr_id=isset($_POST['sr2sup']);
    ton isset vérifie seulement et renvoie un booléen. Donc $sr_id doit valoir true si tu fais un écho.

    c'est plutot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_POST['sr2sup'])
    {
    $sr_id = $_POST['sr2sup'];
    }

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Par défaut
    Merci de ton aide .

    J'ai testé et non, toujours pareil . Je ne comprends pas, j'ai vérifié, mes requêtes ont l'air correctes.

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut
    T'as fait un écho de juste avant la requête ? T'as la bonne valeur ?

  7. #7
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour à tous les deux,

    Quelques remarques:
    @Toad89, en effet l'erreur vient sûrement du isset() qui est une fonction de test qui retourne un boolean dont généralement mis dans une condition (ex un if)

    @Toad89 et @Tanoak_LaCapuche petite leçon sur les quotes: Dans une ligne de code Php évaluera tout se qui se trouve entre double quote " et non entre simple quote ', de même comme la requête est sur un id ya pas besoin de la prendre comme une chaine DONC:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1='delete FROM ADRESSEIP WHERE sr_id = '.$sr_id.' ';

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1="delete FROM ADRESSEIP WHERE sr_id = '$sr_id'";


    ET ceci est correct
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $sql1="DELETE FROM adresseIP WHERE sr_id = $sr_id";
    Dernière remarque, il faudrait que tu te donnes un code sur les variables (toujours en minuscule, le première lettre sauf pour les classes) et sur les mots clés Sql celà rendra une ligne plus lisible par tous

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2012
    Messages
    179
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 179
    Par défaut
    Merci Fench Tu vas pouvoir l'aider bien mieux que moi.

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

Discussions similaires

  1. Confirmation de la suppression d'un élément dans un SGBD
    Par Atharendil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/09/2006, 13h40
  2. Interdire la suppression d'une ligne dans une BDD
    Par griese dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 30/06/2006, 10h32
  3. Réponses: 8
    Dernier message: 01/04/2006, 10h10
  4. Suppression d'un champ d'une bdd
    Par Kerod dans le forum C++Builder
    Réponses: 4
    Dernier message: 27/02/2006, 22h19
  5. Réponses: 14
    Dernier message: 01/12/2003, 17h47

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