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 de la base


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 47
    Par défaut suppression de la base
    Bonjour,
    *u_delete.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
    27
    28
    29
    30
    31
    32
     
    <form method='POST' action='u_delete_bd2.php'>
    <table border="1">
    <tr>
    <td >cin</td>
    <td >nom</td>
    <td >prenom</td>
    <td >mot de passe </td>
    <td >type</td>
    <td >choix</td>
    </tr>
    <?php
    include 'connect_bd.php';
    $query="Select * from utilisateur" ;
    $result = mysql_query( $query )or exit ('Erreur SQL !'.$query.'<br>'.mysql_error());
    while($data = mysql_fetch_array($result))
    {
    echo"<tr><td>".$data['cin']."</td>";
    echo"<td>".$data['nom']."</td>";
    echo"<td>".$data['prenom']."</td>";
    echo"<td>".$data['mot_de_passe']."</td>";
    echo"<td>".$data['type']."</td>";
    echo"<td><input type='checkbox' name='delete[]' value='".$data['cin']."'></td>";
    echo"</tr>";
    }
    mysql_close();
    ?>
    </table>
    <input class="bouton" type="submit"  value="Eliminer">
    </form>
    </body>
    </html>
    *u_delete_bd2.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
    <?php 
    if (sizeof($delete)==0){
    //header('Location:u_delete.php');
    exit;}
    else{
     
    include 'connect_bd.php';
    foreach ($delete as $valeur){
    $sql="DELETE FROM utilisateur where cin='$cin'";
    $req= mysql_query($sql);
    }
    mysql_close();
    header('Location:u_delete.php');
    exit;
    }
    ?>
    pourquoi il y a un problème de suppression?
    MERCI

  2. #2
    Membre expérimenté
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Par défaut
    bonjour,
    Il y a plusieurs erreurs dans les deux pages :

    name="delete[]" n'est pas correct remplace le par :
    <input type='checkbox' name='delete' value='".$data['cin']."'></td>
    ensuite, dans la 2e page, tu fais des tests sur des variables non initialisées :
    $delete n'existe pas donc tu n'iras jamais plus loin que ton 1er if
    dernière chose : tu ne récupères aucune valeur de tes formulaires
    je te conseille de lire un tuto sur les formulaires pour corriger ta 2e page.
    il y en a un très détaillé ici : http://g-rossolini.developpez.com/tutoriels/php/formulaires/

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 47
    Par défaut
    comment je peux déclarer $delete ?

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Lis au moins un chapitre dans un tuto pour débutant pressé...

    http://sylvie-vauthier.developpez.co...ulaires#LIII-1
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 47
    Par défaut
    j'ai lu le tutoral mais puisque je suis un débutant en PHP je n'ai pas pu à corriger le code si je ne vous dérange pas vous pouvez m'aider à le corriger
    MERCI

  6. #6
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    tu as lu le tuto et tu n'as pas compris que $toto est différent de $_POST['toto'].
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  7. #7
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2013
    Messages : 47
    Par défaut
    non , je sais la différence mais je n'ai pas su comment corriger le deuxième fichier.
    comment je fais un appel de $delete qui se trouve dans le premier fichier ?
    merci

  8. #8
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Ah bon, quelle ligne du premier fichier ?
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  9. #9
    Membre Expert
    Homme Profil pro
    Développeur C++
    Inscrit en
    Avril 2012
    Messages
    771
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2012
    Messages : 771
    Par défaut
    bonjour,

    il est tout à fait possible d'écrire comme tu la fait dans le premier fichier :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type='checkbox' name='delete[]' value='".$data['cin']."'>

    Dans la page ou tu recevra ton formulaire $_POST['delete'] sera alors un tableau.

    Donc pour traiter ce tableau :
    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 
    /*Il faut tester la valeur de $_POST['delete'] qui est la variable global du formulaire reçu en paramètre POST
     * La fonction empty se charge de vérifier la présence de cette variable et vérifie s'il est est vide (0, NULL, array vide, ...)
     */
    if (empty($_POST['delete'])){
    //header('Location:u_delete.php');
    exit;}
    else{
     
    include 'connect_bd.php';
    //Comme pour le empty c'est la variable $_POST['delete'] qu'il faut tester
    foreach ($_POST['delete'] as $valeur){
    // chaque occurence du tableau $_POST['delete'] est représenté par la variable $valeur pour chaque tour de la boucle foreach
    $sql="DELETE FROM utilisateur where cin='" . intval($valeur) . "'";
    $req= mysql_query($sql);
    }
    mysql_close();
    header('Location:u_delete.php');
    exit;
    }
    ?>
    Essaye ce code en le lisant (avec les commentaires) et non seulement un copier coller pour que tu puisse le comprendre et le reproduire.

    Par contre si c'est un nouveau développement abandonne l'API mysql_ pour migrer vers les API mysqli_ ou PDO car mysql_ est obsolète.

    De plus tu gagnerait en performance en utilisant les requêtes préparées ou au moins contruire ta requête pour qu'elle supprime toutes les valeurs du tableau d'un seul coup au lieu de faire une boucle et supprimer un à un les enregistrement.

Discussions similaires

  1. Comment Interdire la suppression d'une base mdb ?
    Par abdelo78 dans le forum Sécurité
    Réponses: 1
    Dernier message: 19/02/2007, 08h52
  2. [Conception] Suppression dans une base
    Par djinko dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 04/04/2006, 16h19
  3. Suppression d'une base
    Par ptidoudou02 dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 06/07/2005, 09h40
  4. Suppression dynamique des bases...
    Par elmagnifico dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 20/04/2005, 17h13

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