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 :

Système de checkbox relié à un bouton supprimer


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut Système de checkbox relié à un bouton supprimer
    Bonjour, étant débutant en Mysql & PHP, je suis actuellement entrain de coder en local un petit outil permettant de gérer une base de donnée depuis un site et je rencontre actuellement un problème, malgrès la recherche que j'ai fais depuis hier soir sur le web, le problème est que mon code ne me renvoie pas d'erreur mais n'affecte en rien la base de donnée au moment de la suppression, je me demande si le problème viens du fait que les checkbox ne récupèrent pas bien l'id des utilisateurs de ma base de donnée ou si le problème vient du fait que le bouton supprimer ne soit pas bien relié à celles-ci.

    Je vous met mon code total à disposition au cas où j'aurais oublier quelque chose plus haut, étant débutant il est possible que j'ai pas mal d'erreur ou de choses incohérentes, encore désolé :

    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <?php
      include('include_db.php');
      session_start();
      if (empty($_SESSION['Prenom']))
        header('Location: index.php');
      if (isset($_SESSION['Prenom'])) {
        echo "<b><div class=\"session\">Connecté en tant que: ".$_SESSION['Prenom']. "</div></b>";
      }
    ?>
    <!DOCTYPE html>
    <html lang="en" dir="ltr">
      <head>
        <title>PA - Liste des utilisateurs</title>
        <meta charset="utf-8">
        <link rel="stylesheet" type="text/css" href="css/navigationbar.css">
        <link rel="stylesheet" type="text/css" href="css/design.css">
        <link rel="stylesheet" type="text/css" href="css/search.css">
        <link rel="stylesheet" type="text/css" href="css/front_tab.css">
        <link rel="stylesheet" type="text/css" href="css/tab.css">
        <link rel="stylesheet" type="text/css" href="css/button.css">
    <div class="page">
      <div class="page__demo">
        <nav class="menu">
          <ul class="menu__list">
            <li class="menu__group"><a href="Add.php" class="menu__link">Ajouter</a></li>
            <li class="menu__group"><a href="logout.php" class="menu__link">Se déconnecter</a></li>
            <div class="search">
            <form method="post" action="list.php">
            <div class="searchbar"><input type="text" placeholder="Chercher un utilisateur.." name="Search" style="width: 180px; height: 23px"></div>
            <div class="deletebtn"><button type="submit" name="supprimer" value="supprimer">Supprimer</button>
            </form>
          </div>
          </ul>
        </div>
        </nav>
      </div>
    </div>
      </head>
      <br><br>
      <body><br><br>
        <div class="main">
        <table class="timecard">
          <tr>
            <th id="Nom">NOM</th>
            <th id="Prenom">PRÉNOM</th>
            <th id="Sexe">SEXE</th>
            <th id="Telephone">TELEPHONE</th>
            <th id="E-mail">EMAIL</th>
            <th id="Code-Postale">CODE POSTALE</th>
            <th id="QPV">QPV</th>
            <th id="Id">CHOIX</th>
            <th id="Edit">MODIFICATION</th>
          </tr>
          <tbody>
            <?php
              if (empty($_POST["Search"]))
                $responce = $db->query('SELECT * FROM BDD');
              else {
                $search = str_replace(' ', '', $_POST["Search"]);
                if (!is_numeric($search)) {
                  $responce = $db->prepare('SELECT * FROM BDD WHERE Prenom LIKE ? OR Nom LIKE ? OR Ville LIKE ? OR Email LIKE ? OR Adresse LIKE ?');
                  $responce->execute(array( '%' . $search . '%' , '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%'));
                }
                else {
                  $responce = $db->prepare('SELECT * FROM BDD WHERE Telephone LIKE ? OR CodePostale LIKE ?');
                  $responce->execute(array('%'. $search . '%' , '%' . $search . '%'));
                }
              }
              $count = 0;
              while ($donne = $responce->fetch()) {
                if($count % 2 == 0)
                  echo "<tr class=\"impair\">";
                else
                  echo "<tr class=\"pair\">";
                echo "<td>". $donne["Nom"] . "</td>";
                echo "<th>". $donne["Prenom"] ."</th>";
                echo "<td>". $donne["Sexe"]. "</td>";
                echo "<td>". $donne["Telephone"]. "</td>";
                echo "<td>". $donne["Email"]. "</td>";
                echo "<td>". $donne["CodePostale"]. "</td>";
                echo "<td>". $donne["QPV"]. "</td>";
                echo "<td><input type='checkbox' name='delete[]' value='".$donne['Id']."'></td>";
                echo "<td><button type='submit' name='edit' value='edit'/>Editer</td>";
                echo "</tr>";
                $count = $count + 1;
              }
    ?>
    <?php
      if (isset($_POST["delete"]))
      {
      $ids = implode(",",$_POST["delete"]);
      $supprimer="DELETE  FROM `BDD` WHERE Id IN ($ids)";
      mysql_query($supprimer);
      }
    ?>
          </tbody>
        </div>
      </body>
    </html>
    Je vous remercie d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- Apprends d'abord à écrire un code HTML valide.



    2-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
       mysql_query($supprimer);
    Tu ne vois pas comme "un défaut" ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    J'ai régler les soucis de div mal fermer etc.. On était 2 amis à coder dessus au début (débutants) donc c'est pour cela que tout les div n'était pas correctement fermés etc..
    Comme dis précédemment je suis totalement débutant en programmation WEB, j'avais prévenu pour éviter les moqueries ou quoi que ce soit d'autre..
    En ce qui concerne cette requête j'ai modifier ça en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $final = $db->prepare("DELETE  FROM `BDD` WHERE Id IN ($ids)");
    mais ça ne marche toujours pas, pourriez-vous m'éclairer ?

    Merci beaucoup!

  4. #4
    Invité
    Invité(e)
    Par défaut
    Il manque :

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Merci beaucoup j'ai rajouter le bout de code juste après pour que l'action sois bien exécutée hors rien ne ce passe quand je clique sur le bouton supprimer, je pense qu'il ne détecte pas si les checkbox sont bien cochés ou non ou je ne sais pas?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
      if (isset($_POST["delete"]))
      {
      $ids = implode(",",$_POST["delete"]);
      $final = $db->prepare("DELETE  FROM `BDD` WHERE Id IN ($ids)");[ATTACH=CONFIG]496055[/ATTACH]
      $final->execute();
      }
    ?>
    Je vous rajoute une petite photo du site pour mieux comprendre :

    Nom : Capture d’écran 2019-08-07 à 13.06.59.png
Affichages : 454
Taille : 240,5 Ko

  6. #6
    Invité
    Invité(e)
    Par défaut
    1- Merci d'utiliser le bouton "+Répondre à la discussion" en bas à gauche.

    2- Ta structure HTML n'est certainement toujours pas bonne.
    Et une copie d'écran ne sert à rien ici.

    Le bouton et la table ne sont pas dans le même formulaire (balise <form>).
    • Mets le bouton APRES la table, et les deux dans le même <form>
    • Effectue le traitement AVANT l'affichage de la table. Ainsi, les lignes effectivement supprimées ne seront plus affichées.


    CONSEIL :
    • LIS DES TUTOS
    • et commence par des exercices SIMPLES
    • vérifie la structure HTML de la page (clavier "Ctrl" + "U")

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Je vous remercie de votre aide tout fonctionne correctement après application de vos conseils, j'ai bien compris comment marcher un form en php maintenant je vous remercie grandement !

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    1- Merci d'utiliser le bouton "+Répondre à la discussion" en bas à gauche.
    Dernière modification par Invité ; 07/08/2019 à 14h51.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Je suis désolé j'avais pas fais attention!
    J'avais cliquer mais ensuite au lieu de cliquer sur Répondre à la discussion j'avais recliquer sur citer le message, du coup vos conseils fonctionnent parfaitement mais j'ai un problème mes bouton submit Edit étant dans le form peuvent aussi déclencher la suppression des utilisateurs cochés sûrement à cause de mon code pas très propre niveau html..

    Je vous remet mon code un petit peu arranger et fonctionnel :
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    <?php
      include('include_db.php');
      session_start();
      if (empty($_SESSION['Prenom']))
        header('Location: index.php');
      if (isset($_SESSION['Prenom'])) {
        echo "<b><div class=\"session\">Connecté en tant que: ".$_SESSION['Prenom']. "</div></b>";
      }
    ?>
    <?php
      if (isset($_POST["delete"]))
      {
      $ids = implode(",",$_POST["delete"]);
      $final = $db->prepare("DELETE  FROM `BDD` WHERE Id IN ($ids)");
      $final->execute();
      }
    ?>
    <!DOCTYPE html>
    <html lang="en" dir="ltr">
      <head>
        <title>PA - Liste des utilisateurs</title>
        <meta charset="utf-8">
        <link rel="icon" href="https://www.proactiveacademy.fr/wp-content/uploads/2018/01/cropped-favicon-32x32.png" sizes="32x32"/>
        <link rel="stylesheet" type="text/css" href="css/navigationbar.css">
        <link rel="stylesheet" type="text/css" href="css/design.css">
        <link rel="stylesheet" type="text/css" href="css/search.css">
        <link rel="stylesheet" type="text/css" href="css/front_tab.css">
        <link rel="stylesheet" type="text/css" href="css/tab.css">
        <link rel="stylesheet" type="text/css" href="css/delete.css">
    <div class="page">
      <div class="page__demo">
        <nav class="menu">
          <ul class="menu__list">
            <li class="menu__group"><a href="Add.php" class="menu__link">Ajouter</a></li>
            <li class="menu__group"><a href="logout.php" class="menu__link">Se déconnecter</a></li>
            <div class="search">
            <form method="post" action="list.php">
            <div class="searchbar"><input type="text" placeholder="Chercher un utilisateur.." name="Search" style="width: 180px; height: 23px"></div>
          </form>
          </div>
          </ul>
        </div>
        </nav>
      </div>
    </div>
      </head>
      <br><br>
      <body><br><br>
        <form method="post" action="list.php">
        <div class="main">
        <table class="timecard">
          <tr>
            <th id="Nom">NOM</th>
            <th id="Prenom">PRÉNOM</th>
            <th id="Sexe">SEXE</th>
            <th id="Telephone">TELEPHONE</th>
            <th id="E-mail">EMAIL</th>
            <th id="Code-Postale">CODE POSTALE</th>
            <th id="QPV">QPV</th>
            <th id="Id">CHOIX</th>
            <th id="Edit">MODIFICATION</th>
          </tr>
          <tbody>
            <?php
              if (empty($_POST["Search"]))
                $responce = $db->query('SELECT * FROM BDD');
              else {
                $search = str_replace(' ', '', $_POST["Search"]);
                if (!is_numeric($search)) {
                  $responce = $db->prepare('SELECT * FROM BDD WHERE Prenom LIKE ? OR Nom LIKE ? OR Ville LIKE ? OR Email LIKE ? OR Adresse LIKE ?');
                  $responce->execute(array( '%' . $search . '%' , '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%'));
                }
                else {
                  $responce = $db->prepare('SELECT * FROM BDD WHERE Telephone LIKE ? OR CodePostale LIKE ?');
                  $responce->execute(array('%'. $search . '%' , '%' . $search . '%'));
                }
              }
              $count = 0;
              while ($donne = $responce->fetch()) {
                if($count % 2 == 0)
                  echo "<tr class=\"impair\">";
                else
                  echo "<tr class=\"pair\">";
                echo "<td>". $donne["Nom"] . "</td>";
                echo "<th>". $donne["Prenom"] ."</th>";
                echo "<td>". $donne["Sexe"]. "</td>";
                echo "<td>". $donne["Telephone"]. "</td>";
                echo "<td>". $donne["Email"]. "</td>";
                echo "<td>". $donne["CodePostale"]. "</td>";
                echo "<td>". $donne["QPV"]. "</td>";
                echo "<td><input type='checkbox' name='delete[]' value='".$donne['Id']."'></td>";
                echo "<td><button type='submit' name='edit' value='edit'/>Editer</td>";
                echo "</tr>";
                $count = $count + 1;
              }
    ?>
        <div class="deletebtn"><button type="submit" name="supprimer" value="supprimer">Supprimer</button></div>
      </form>
          </tbody>
        </div>
      </body>
    </html>
    En vous remerciant !

  10. #10
    Invité
    Invité(e)
    Par défaut
    1-
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
      </head>
      <br><br>
      <body><br><br>
    Ces balises ne sont pas à leur place.
    (et les <br> n'ont rien à faire ici)

    -> Je t'ai conseillé d'utiliser http://validator.w3.org.
    L'as-tu fait ? (il faut que le page soit en ligne, évidemment).

    On peut aussi voir le code HTML généré avec "Ctrl" + "U".

    2-
    ...mes bouton submit Edit étant dans le form...
    En effet.
    Il faut donc revoir un peu la conception.

    Solution simple :
    Au lieu du bouton submit, on peut mettre un lien <a>, avec en paramètre d'id de la ligne à modifier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                echo "<td><a class=\"btnEdit\" href=\"modif.php?id=".$donne['Id']."\">Editer</a></td>";

  11. #11
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    J'ai pas encore eu le temps de mettre au propre, enfête je compte refaire une refonte du site total pour faire quelque chose de moderne et propre et en profiter pour approfondir mes conaissances en CSS, pour l'instant j'ai supprimer et bien vérifier à bien fermer les balises au bon endroit et ça suffit pour que ça fonctionne.
    Parfait, j'ai fais comme tu as dis et tout fonctionne nickel !
    Du coup si je veux faire un système d'édit tu me conseillerais quoi, faire une page à part ou faire une popup par dessus la page ou si tu as d'autre conseil je suis preneur car je ne sais pas du tout comment m'y prendre et je sens que ça va être compliquer !

    En tout cas je te remercie d'avoir pris autant de ton temps pour me corriger et m'en apprendre plus sur le PHP !

  12. #12
    Invité
    Invité(e)
    Par défaut
    1- Le plus simple : une page à part
    • formulaire + traitement
    • puis retour au listing

    Voir :


    2- La popup : nécessite des connaissances supplémentaires
    • choix d'un plugin/script de popup
    • (sans rechargement de page) -> Traitement JS/Ajax
    • Rafraichissement du listing à la fin du traitement

  13. #13
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    D'accord j'ai déjà effectuer un formulaire qui remplit ma base de donnée et donc mon tableau list.php du coup maintenant pour l'édition des données, comment je pourrais faire directement depuis la page que je t'ai montrer en cliquant sur le bouton éditer ?
    Car maintenant que j'ai le formulaire pour add, si je fais un formulaire edit à part, il reprendrait pas les données actuelles d'un utilisateur dans les champs?

    Merci beaucoup d'avance !

  14. #14
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    avec ce lien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                echo "<td><a class=\"btnEdit\" href=\"modif.php?id=".$donne['Id']."\">Editer</a></td>";
    Dans la page modif.php, tu récupères l'id de la ligne à modifier avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php // id de la ligne à modifier
    $id = ( !empty($_GET['id']) && is_numeric($_GET['id']) )? $_GET['id'] : 0;
    // Si vide, on redirige
    if( empty($id) )
    {
       header('location:index.php');
       exit;
    }
    // Sinon, on continue
    // ICI, on fait la requête SQL pour récupérer les infos en base de données
    // ....
    // Puis on affiche le formulaire
    // ....

  15. #15
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    D'accord, je vais tester ça dans l'après-midi je te remercie énormément !

    Au passage je suis entrain d'essayer d'effectuer un système de pagination car si je me retrouve avec 2000 utilisateurs par exemple ça deviendrait rapidement ingérable sur une page, hors en m'aidant d'un petit tutoriel sur internet j'ai réussi à afficher les numéros de pages etc sauf que le process n'a pas l'air de fonctionner, il m'affiche tout les utilisateurs quand même sur la même page, serait-il possible que tu y jettes un oeil dès que tu as le temps? Je te met le code à disposition :
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    <?php
    include('include_db.php');
    session_start();
    if (empty($_SESSION['Prenom']))
    header('Location: index.php');
    ?>
    <?php
    if (isset($_POST["delete"]))
    {
    $ids = implode(",",$_POST["delete"]);
    $final = $db->prepare("DELETE  FROM `BDD` WHERE Id IN ($ids)");
    $final->execute();
    }
    ?>
    <?php
    $users = 5;
    $users_by_page = $db->query('SELECT Id FROM BDD');
    $users_total = $users_by_page->rowCount();
    $pagesTotales = ceil($users_total/$users);
    if(isset($_GET['page']) AND !empty($_GET['page']) AND $_GET['page'] > 0 AND $_GET['page'] <= $pagesTotales) {
    $_GET['page'] = intval($_GET['page']);
    $pageCourante = $_GET['page'];
    } else {
    $pageCourante = 1;
    }
    $depart = ($pageCourante-1)*$users;
    ?>
    <html>
    <div class="container">
    <header>
      <title>PA - Liste des utilisateurs</title>
      <link rel="icon" href="https://www.proactiveacademy.fr/wp-content/uploads/2018/01/cropped-favicon-32x32.png" sizes="32x32"/>
      <link rel="stylesheet" type="text/css" href="css/index_fix.css">
      <link rel="stylesheet" type="text/css" href="css/navigationbar.css">
      <link rel="stylesheet" type="text/css" href="css/design.css">
      <link rel="stylesheet" type="text/css" href="css/search.css">
      <link rel="stylesheet" type="text/css" href="css/front_tab.css">
      <link rel="stylesheet" type="text/css" href="css/tab.css">
      <link rel="stylesheet" type="text/css" href="css/delete.css">
      <link rel="stylesheet" type="text/css" href="css/list_proper.css">
    </header>
    <body>
      <div class="bordertop"></div>
      <meta charset="UTF-8">
      <form method="post" action="list.php">
        <div class="main">
          <table class="timecard">
            <tr>
              <th id="Nom">NOM</th>
              <th id="Prenom">PRÉNOM</th>
              <th id="Sexe">SEXE</th>
              <th id="Telephone">TELEPHONE</th>
              <th id="E-mail">EMAIL</th>
              <th id="Code-Postale">CODE POSTALE</th>
              <th id="QPV">QPV</th>
              <th id="Id">CHOIX</th>
              <th id="Edit">MODIFICATION</th>
            </tr>
            <tbody>
              <?php
              if (empty($_POST["Search"]))
              $responce = $db->query('SELECT * FROM BDD');
              else {
                $search = str_replace(' ', '', $_POST["Search"]);
                if (!is_numeric($search)) {
                  $responce = $db->prepare('SELECT * FROM BDD WHERE Prenom LIKE ? OR Nom LIKE ? OR Ville LIKE ? OR Email LIKE ? OR Adresse LIKE ?');
                  $responce->execute(array( '%' . $search . '%' , '%' . $search . '%', '%' . $search . '%', '%' . $search . '%', '%' . $search . '%'));
                }
                else {
                  $responce = $db->prepare('SELECT * FROM BDD WHERE Telephone LIKE ? OR CodePostale LIKE ?');
                  $responce->execute(array('%'. $search . '%' , '%' . $search . '%'));
                }
              }
              $count = 0;
              $videos = $db->query('SELECT * FROM BDD ORDER BY Id DESC LIMIT '.$depart.','.$users);
              while ($donne = $responce->fetch()) {
                if($count % 2 == 0)
                echo "<tr class=\"impair\">";
                else
                echo "<tr class=\"pair\">";
                echo "<td>". $donne["Nom"] . "</td>";
                echo "<th>". $donne["Prenom"] ."</th>";
                echo "<td>". $donne["Sexe"]. "</td>";
                echo "<td>". $donne["Telephone"]. "</td>";
                echo "<td>". $donne["Email"]. "</td>";
                echo "<td>". $donne["CodePostale"]. "</td>";
                echo "<td>". $donne["QPV"]. "</td>";
                echo "<td><input type='checkbox' name='delete[]' value='".$donne['Id']."'></td>";
                echo "<td><a class=\"btnEdit\" href=\"modif.php?id=".$donne['Id']."\">Editer</a></td>";
                echo "<div class=\"pagination\"></div>";
                echo "</tr>";
                $count = $count + 1;
              }
              for($i=1;$i<=$pagesTotales;$i++) {
                if($i == $pageCourante) {
                  echo $i.' ';
                } else {
                  echo '<a href="list2.php?page='.$i.'">'.$i.'</a> ';
                }
              }
    ?>
              <div class="deletebtn"><button type="submit" name="supprimer" value="supprimer">Supprimer</button></div>
            </form>
          </tbody>
        </div>
      </body>
      <br>
      <footer>
        <div class="copyright"><b>Codé avec ♥ par Ethan Selleron & Julien Foenkins</b></div>
      </footer>
    </div>
    </html>
    Tu pourras observer que j'ai nettoyer un peu le code

    Merci d'avance

  16. #16
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    1- Merci d'utiliser le bouton "+Répondre à la discussion" en bas à gauche.
    1- J'ai connu un poisson rouge qui avait plus de mémoire.....


    2- Créer un système de pagination automatique en PHP


    3- Et la structure de ton code HTML n'est toujours pas correcte...


    N.B. Tu confonds notamment le rôle des balises <head> et <header>.
    Dernière modification par Invité ; 08/08/2019 à 12h36.

  17. #17
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Mais je fais que ça appuyez dessus ahah, je comprends pas..

    Bon ducou j'ai checker votre tutoriel de pagination mais je suis en PDO donc il y'a beaucoup de choses à modifier, du coup j'ai opté pour un tutoriel sur internet, tout marche niveau affichage j'ai bien le système de pages etc,
    il détecte bien que j'ai 20 Id dans ma BDD, donc il me propose 2 pages quand je lui dis 10 utilisateurs par page hors le tableau reste le même peu importe la page, les utilisateurs sont affichés au complet et ça fait maintenant 2h que j'essaye de tester différentes manières en vain, peut-être ai-je mal placer mon PHP par rapport à mon 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
    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
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    <?php
    include('include_db.php');
    session_start();
    if (empty($_SESSION['Prenom']))
    header('Location: index.php');
    ?>
    <?php
    if (isset($_POST["delete"]))
    {
    $ids = implode(",",$_POST["delete"]);
    $final = $db->prepare("DELETE  FROM `BDD` WHERE Id IN ($ids)");
    $final->execute();
    }
    ?>
    <html>
    <div class="container">
        <header>
            <title>PA - Liste des utilisateurs</title>
            <link rel="icon" href="https://www.proactiveacademy.fr/wp-content/uploads/2018/01/cropped-favicon-32x32.png" sizes="32x32" />
            <link rel="stylesheet" type="text/css" href="css/design.css">
            <link rel="stylesheet" type="text/css" href="css/front_tabb.css">
            <link rel="stylesheet" type="text/css" href="css/delete.css">
            <link rel="stylesheet" type="text/css" href="css/list_proper.css">
            <link rel="stylesheet" type="text/css" href="css/list_tab.css">
            <nav>
                <ul>
                    <li><a href="Add.php" style="text-decoration: none;" class="link">Ajouter</a></li>
                    <li><a href="logout.php" style="text-decoration: none;" class="link">Se déconnecter</a></li>
                    <div class="search">
                    </div>
                </ul>
            </nav>
    </div>
    </header>
    <body>
        <div class="bordertop"></div>
        <meta charset="UTF-8">
        <form method="post" action="list.php">
            <div class="main">
                <table class="timecard">
                    <tr>
                        <th id="Nom">NOM</th>
                        <th id="Prenom">PRÉNOM</th>
                        <th id="Sexe">SEXE</th>
                        <th id="Telephone">TELEPHONE</th>
                        <th id="E-mail">EMAIL</th>
                        <th id="Code-Postale">CODE POSTALE</th>
                        <th id="QPV">QPV</th>
                        <th id="Id">CHOIX</th>
                        <th id="Edit">MODIFICATION</th>
                    </tr>
            <tbody>
              <?php
              $messagesParPage = 10;
     
              $retour_total  = $db->query('SELECT COUNT(*) AS total FROM BDD');
              $donnees_total = $retour_total;
              $total         = $donnees_total->fetchColumn();
     
              $nombreDePages = ceil($total / $messagesParPage);
     
     
              if (isset($_GET['page'])) {
                  $pageActuelle = intval($_GET['page']);
     
                  if ($pageActuelle > $nombreDePages) {
                      $pageActuelle = $nombreDePages;
                  }
              } else {
                  $pageActuelle = 1;
              }
     
              $premiereEntree = ($pageActuelle - 1) * $messagesParPage;
     
              $retour_messages = $db->query('SELECT * FROM BDD ORDER BY Id ASC LIMIT ' . $premiereEntree . ', ' . $messagesParPage . '');
     
              ?>
              <?php
              if (empty($_POST["Search"]))
                  $responce = $db->query('SELECT * FROM BDD');
              else {
                  $search = str_replace(' ', '', $_POST["Search"]);
                  if (!is_numeric($search)) {
                      $responce = $db->prepare('SELECT * FROM BDD WHERE Prenom LIKE ? OR Nom LIKE ? OR Ville LIKE ? OR Email LIKE ? OR Adresse LIKE ?');
                      $responce->execute(array(
                          '%' . $search . '%',
                          '%' . $search . '%',
                          '%' . $search . '%',
                          '%' . $search . '%',
                          '%' . $search . '%'
                      ));
                  } else {
                      $responce = $db->prepare('SELECT * FROM BDD WHERE Telephone LIKE ? OR CodePostale LIKE ?');
                      $responce->execute(array(
                          '%' . $search . '%',
                          '%' . $search . '%'
                      ));
                  }
              } {
                  while ($donnees_messages = $retour_messages->fetch());
                  $count = 0;
                  while ($donne = $responce->fetch()) {
                      if ($count % 2 == 0)
                          echo "<tr class=\"impair\">";
                      else
                          echo "<tr class=\"pair\">";
                      echo "<td>" . $donne["Nom"] . "</td>";
                      echo "<th>" . $donne["Prenom"] . "</th>";
                      echo "<td>" . $donne["Sexe"] . "</td>";
                      echo "<td>" . $donne["Telephone"] . "</td>";
                      echo "<td>" . $donne["Email"] . "</td>";
                      echo "<td>" . $donne["CodePostale"] . "</td>";
                      echo "<td>" . $donne["QPV"] . "</td>";
                      echo "<td><input type='checkbox' name='delete[]' value='" . $donne['Id'] . "'></td>";
                      echo "<td><a class=\"btnEdit\" href=\"modif.php?id=" . $donne['Id'] . "\">Editer</a></td>";
                      echo "<div class=\"pagination\"></div>";
                      echo "</tr>";
                      $count = $count + 1;
                  }
              }
              ?>
              <?php
              echo '<p align="center">Page : ';
              for ($i = 1; $i <= $nombreDePages; $i++) {
                  if ($i == $pageActuelle) {
                      echo ' [ ' . $i . ' ] ';
                  } else {
                      echo ' <a href="list2.php?page=' . $i . '">' . $i . '</a> ';
                  }
              }
              echo '</p>';
              ?>
              <div class="deletebtn"><button type="submit" name="supprimer" value="supprimer">Supprimer</button></div>
            </form>
          </tbody>
        </div>
      </body>
      <br>
      <footer>
        <div class="copyright"><b>Codé avec ♥ par Ethan Selleron & Julien Foenkins</b></div>
      </footer>
    </div>
    </html>

  18. #18
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                  while ($donnees_messages = $retour_messages->fetch());
                  $count = 0;
                  while ($donne = $responce->fetch()) {
    Tu trouves normal d'avoir 2 while ?

    Et tu trouves ton code... LOGIQUE ?
    La pagination avant le filtre de recherche ?


    N.B. Je ne vais pas te dire à chaque fois de CORRIGER la structure HTML.
    COMMENCE PAR LES BASES.
    Sinon, tu va continuer à coder n'importe quoi, n'importe comment, sans progresser.

  19. #19
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2019
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2019
    Messages : 83
    Points : 13
    Points
    13
    Par défaut
    Au niveau de la structure HTML j'avais juste un div non fermer (que j'ai corriger il y'a 10mn) n'est-ce pas?

    Etant étudiant en école d'info et pratiquant du C il m'arrive de mettre des for dans des for? (similaire au while)
    Après il est possible qu'en php les règles changent fortement j'ai tenter quelque chose en m'aidant du WEB donc il est fort possible que j'ai mal compris ou que je me sois tromper..
    Et si je rajoute $donnees_messages = $retour_messages->fetch()); dans le while actuel ça change rien en sois.. :/

  20. #20
    Invité
    Invité(e)
    Par défaut
    Ce n'est pas le fait d'avoir 2 while imbriqués qui pose problème.

    C'est que ça n'a RIEN à faire ici !

    Tes requêtes ne sont pas correctes, puisque tu effectues une pagination sur TOUTE la table, AVANT d'appliquer le filtre de recherche !
    Donc, ta pagination est FAUSSE.

    C'est la LOGIQUE du code qu'il faut revoir.


    Et la structure HTML est toujours FAUSSE !!

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

Discussions similaires

  1. Supprimer des données (checkbox et bouton "supprimer")
    Par Thomas_K dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 07/02/2014, 20h16
  2. création automatique de bouton "supprimer"
    Par houla! dans le forum ASP
    Réponses: 4
    Dernier message: 20/09/2006, 09h23
  3. Valeur pour des checkbox et des boutons radio pour MySQL
    Par mounirha dans le forum Administration
    Réponses: 1
    Dernier message: 18/04/2006, 23h54
  4. Cocher un checkbox avec un bouton
    Par jean tof dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 03/04/2006, 11h06
  5. Un bouton supprimer qui ne supprime pas... help!
    Par SpyesX dans le forum Access
    Réponses: 16
    Dernier message: 20/10/2005, 01h42

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