Problème sélection donnée tableau dynamique avec PHP MySQL

Fermé
tom34314341 - 5 août 2022 à 15:29
jordane45 Messages postés 38317 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024 - 5 août 2022 à 15:54

 Bonjour,

Je suis en train de faire un petit application PHP CRUD, un plateforme de traitement d'incident informatique. 

Je me retrouve maintenant avec la page "Liste des incident" (version administrateur) où il va voir les listes des incidents.

Le concept est d'afficher les incidents suivant un mot clés et / ou l'état de l'incident sil les champs sont remplis. Dans l'autre cas, on rempli la table avec les incidents suivant leurs date de parution. (dans le code ci-dessous)

Le problème est que j'ai récemment mit un condition (en haut) ce qui concerne la sélection des données à affiché.

Et soit il m'affiche les trois messages d'erreur suivant :

_Il y a des valeurs dans les POST NouveauRija RABEErreur de syntaxe pr�s de '\'Nouveau\' AND NOMCOMPLETREDADCTEUR = \'Rija RABE\'' � la ligne 1

_mysqli_fetch_assoc() expects parameter 1 to be mysqli_result, boolean given in adminListIncident.php on line (je m'en souvient plus) 

Bref, les erreur apparaissent toujours si j'ai mis $res à l'intérieur. Et je ne sait plus quoi faire

<?php
    require_once ('commun/connexiondb.php'); //page php pour connexion au DB

// On a d'abord une condition qui affiche les données dans la colonne du tableau en décroissante suivant leurs date de parrution (plus récent en haut) si les champs "EtatIncident" et "motCleIncident" sont vide.

//Ensuite dans le cas contraire, il récupère les valeurs dans "EtatIncident" et "motCleIncident"
et les utilises pour la requete sql.

    if(isset($_POST) & empty($_POST)){
        echo("Vous n'avez pas défini l'état de l'incident ou le mot cle servant a la recherche ou tout les deux.");
        $selectIncident ="SELECT * FROM incident ORDER BY DATEPARRUTION DESC";
    }else{
        echo("Il y a des valeurs dans les POST ");
        $etatIncident = stripslashes($_POST['etatIncident']);
        $motCleIncident = stripslashes($_POST['motcleIncident']);
        echo($etatIncident);
        echo($motCleIncident);
        $selectIncident = " SELECT * FROM incident WHERE ETATINCIDENT = \'$etatIncident\' AND NOMCOMPLETREDADCTEUR = \'$motCleIncident\'";
    }
    $res = mysqli_query($connexion, $selectIncident) or die(mysqli_error($connexion));
?>
<!DOCTYPE html> 
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Soacare | Liste des incidents</title>
        <script type="text/javascript" src=""></script>
        <script type="text/javascript" src=""></script>
        <link rel="stylesheet" href="css/bootstrap.css">
</head>
<body>
    <?php
        include('commun/[admin]navbar.php');
    ?>
    <br><br><br><br>
    <div class="container-fluid">
        <div class="container">
            <h1>Liste des incidents</h1>
                <div class="row">
                    <div class="col-md-4">
         <!-- Le formulaire -->
                    <form action="" method="POST">
                        <div class="form-group">
                            <label for="input1" class="form-label mt-4">Etat de l'incident</label>
                            <select name="etatIncident" class="form-select" id="input1">
                            <option>Nouveau</option>
                            <option>En cours</option>
                            <option>cloturé</option>
                            </select>
                        </div>
                    </div>
                    <div class="col-md-4">
                        <label for="input2" class="form-label mt-4">Rechercher un incident</label>
                        <input type="text" name="motcleIncident" class="form-control" id="input2" placeholder="Entrer un mot clé ">
                    </div>
                    <div class="col-md-4">
                        <br><br>
                        <center><button type="submit" class="btn btn-primary" value="valider">Valider les informations</button></center> 
                    </div>
                    </form>  
           </div>
          
                <br> <!-- Le tableau à remplir --->
                <table class="table table-hover">
                    <thead>
                        <tr>
                        <th scope="col">n° Incident</th>
                        <th scope="col">Nom de l'editeur</th>
                        <th scope="col">Departement</th>
                        <th scope="col">Description </th>
                        <th scope="col">Contact</th>
                        <th scope="col"> Responsable</th>
                        <th scope="col">Date de parrution</th>
                        <th scope="col">Date de clôture</th>
                        <th scope="col">Etat de l'incident</th>
                        <th>Action</th>
                        </tr>
                    </thead>
                    <tbody>

                  <!-- boucle permettant de remplir les champs --->
                        <?php while ($affichageDonnee = mysqli_fetch_assoc($res)){?>
                            <tr class="table-striped">
                            <td><?= $affichageDonnee['NUMINCIDENT'] ?></td>
                            <td><?= $affichageDonnee['NOMCOMPLETREDACTEUR'] ?></td>
                            <td><center><?= $affichageDonnee['DEPARTEMENTREDACTEUR'] ?></center></td>
                            <td><?= $affichageDonnee['DESCRIPTIONINCIDENT'] ?></td>
                            <td><?= $affichageDonnee['CONTACTREDACTEUR'] ?></td>
                            <td><?= $affichageDonnee['NOMCOMPLETRESPONSABLE'] ?></td>
                            <td><?= $affichageDonnee['DATEPARRUTION'] ?></td>
                            <td><?= $affichageDonnee['DATECLOTURE'] ?></td>                        
                            <td><?= $affichageDonnee['ETATINCIDENT'] ?></td>
                            <td><a href="[admin]traiterIncident.php?numIncident=<?php echo $affichageDonnee['NUMINCIDENT']; ?>"><img style="width:50px;height: 50px;" src=""/></a></td> 
<!-- Image qui nous redirige vers une autre page et récupere le numéro de l'incident --->
                            </tr>    
                        <?php } ?>        
                    </tbody>
                </table>
                <?php include 'commun/footer.php' ?>
        </div>
    </div> 
</body>
</html>

1 réponse

jordane45 Messages postés 38317 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 30 novembre 2024 4 705
Modifié le 5 août 2022 à 15:55

Bonjour,

Il faut virer des back slash dans ta requête

$selectIncident = " SELECT * 
            FROM incident 
            WHERE ETATINCIDENT = '$etatIncident' 
              AND NOMCOMPLETREDADCTEUR = '$motCleIncident'";
 

0