Bonjour a tous ,
je fais un projet étudiant pour obtenir mon DUT . Je suis sur un projet PhP Laravel qui a pour but d'être un site d'auto-évaluation SQL ,càd, dans un questionnaire comportent plusieurs questions , la première s'affiche " Quels sont l'id et le titre des films ?" puis l'utilisateur entre sa requête dans un formulaire et je l’exécute à l'aide d'un PDO. Ensuite je dois comparer le résultat de sa requête avec le résultat que j'ai stocké dans la base puis si validation l'utilisateur passe à la suivante.
J'ai réussie donc à exécuter sa requête puis afficher le résultat de la requête Nom : Requete.PNG
Affichages : 125
Taille : 36,4 Ko
Mais voila je voudrai géré l'erreur dans la demande de requête ( si il met n'importe quoi ou si il demande une chose qui n'est pas dans la base)
j'ai testé de mettre n'importe quoi et j'ai une erreur (Normal me direz vous ) qui est Nom : ErreurRequete.PNG
Affichages : 122
Taille : 65,8 Ko
Donc je voudrai que cela ne s'affiche pas mais que cela affiche requête invalide en dessous du formulaire par exemple.

Voici mon code de mon questionnaire:
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
class QuestionnaireController extends Controller
{
 
 
    public function index()
    {
        return view('questionnaire');
    }
 
 
    public function requete(Request $requete)
    {
        try {
            $connexion = NEW PDO('mysql:host=localhost;dbname=autoevaluationsql', 'root', '', array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING,));
            $connexion->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
        } catch (Exception $exception) {
            echo "Erreur : " . $exception->getMessage();
        }
        $sql = $requete->input('requete');
        try {
            $query = $connexion->prepare($sql);
            $query->execute();
            $resultat = $query->fetchAll();
        }catch (Exception $e){
            echo $e->getMessage();
        }
 
        $tableau = [];
        $tableauReponse = [];
        for ($i = 0; $i < sizeof($resultat); $i++) {
            $donnees = "";
            foreach ($resultat[$i] as $key => $valeur) {
                $donnees .= $valeur . ' ';
            }
            $tableau[$i] = $donnees;
        }
        /*            $sqlRep = $requete->input('Select * from film');
                    $queryRep = $connexion -prepare($sqlRep);
                    $queryRep->execute();
                    $reponse = $queryRep->fetchAll();
                    for ($i = 0; $i < sizeof($reponse); $i++) {
                        $donnees = "";
                        foreach ($reponse[$i] as $key => $valeur) {
                            $donnees .= $key . ' : ' . $valeur . ' ';
                        }
                        $tableauReponse[$i] = $donnees;
                    }*/
 
 
        return view('questionnaire', ['traitement' => $tableau]);
 
}
}
Et celui de ma vue
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
@section('content')
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">Question n°1</div>
                    <div class="card-body">
                        <div class="form-group">
                            <div class="container">
                                <form method="post" action="{{ url('questionnaire') }}">
                                    {{ csrf_field() }}
                                    <div class="row">
                                        <div class="input-group">
                                            <input class="form-control" name="requete"
                                                   placeholder="Entrez votre requête" required>
                                        </div>
                                    </div>
                                    <br>
                                    <div class="row">
                                        <div class="input-group">
                                            <input type="submit" class="btn btn-outline-dark" name="Valider"
                                                   value="Valider">
                                        </div>
                                    </div>
                                </form>
                            </div>
                        </div>
                    </div>
                </div>
 
 
                @if(!empty($traitement))
                    <div class="card">
                        <div class="card-header">
                            Réponse traitement
                        </div>
 
                        <div class="card-body">
                            @for($i = 0; $i<count($traitement); $i++)
                                {{ utf8_encode($traitement[$i]) }}<br>
                            @endfor
                            @else
                                Aucune requête mentionnée
                        </div>
                    </div>
                @endif
 
            </div>
        </div>
    </div>
@endsection


Merci d'avance de votre aide