Bonjour J'apprends à développer des sites web. Je n'arrive pas à afficher un enregistrement sur une page ( j'ai toujours un message d'erreur )
Svp aidez moi
Bonjour J'apprends à développer des sites web. Je n'arrive pas à afficher un enregistrement sur une page ( j'ai toujours un message d'erreur )
Svp aidez moi
Bonjour,
Il va nous falloir plus de détails : quelles sont les instructions utilisées ? qu'est ce que vous cherchez à faire (bon ça afficher un enregistrement, ok) ? quel est le message d'erreur ?
Ok voici le code sql pour la base de données -- phpMyAdmin SQL Dump
Code sql : 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 -- version 4.1.14 -- <a href="http://www.phpmyadmin.net" target="_blank">http://www.phpmyadmin.net</a> -- -- Client : 127.0.0.1 -- Généré le : Mar 17 Mars 2020 à 20:55 -- Version du serveur : 5.6.17 -- Version de PHP : 5.5.12 SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- Base de données : `travel_congo` -- -- -------------------------------------------------------- -- -- Structure de la table `compagnies` -- CREATE TABLE IF NOT EXISTS `compagnies` ( `N°` int(255) NOT NULL AUTO_INCREMENT, `nom_c` varchar(160) NOT NULL, `siege` varchar(160) NOT NULL, `tel_c1` bigint(12) NOT NULL, `tel_c2` bigint(12) NOT NULL, `mail_c` varchar(100) NOT NULL, `type` varchar(30) NOT NULL, `nombre_a` int(255) NOT NULL, `nom_r` varchar(160) NOT NULL, `fonction` varchar(100) NOT NULL, `tel_r1` bigint(12) NOT NULL, `tel_r2` bigint(12) NOT NULL, `mail_r` varchar(100) NOT NULL, `site_i` varchar(100) NOT NULL, PRIMARY KEY (`N°`), KEY `nom_c` (`nom_c`,`type`,`nombre_a`,`site_i`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Table d''enregistrement de toutes les compagnies de transport' AUTO_INCREMENT=65 ; -- -- Contenu de la table `compagnies` -- INSERT INTO `compagnies` (`N°`, `nom_c`, `siege`, `tel_c1`, `tel_c2`, `mail_c`, `type`, `nombre_a`, `nom_r`, `fonction`, `tel_r1`, `tel_r2`, `mail_r`, `site_i`) VALUES (1, 'Océan du Nord', '30 Boulevard de Gaul Centre ville Pointe Noire', 242068396595, 2147483647, 'oceandunord@gmail.com', 'R', 30, 'BABELARD Christain', 'Directeur Commercial', 2147483647, 2147483647, 'babelard@gmail.com', 'www.ocean.com'), (50, 'Chemin de Fer Congo Océan', 'Brazzaville Mikalou', 242068396595, 242066924892, 'cfco@gmail.com', 'F', 10, 'MPIKA Babine', 'Directeur Général', 242057787807, 242053393961, 'bampika@gmail.com', 'www.cfco.com'), (60, 'Trans Route', 'boite', 242068396595, 242066924892, 'cfco@gmail.com', 'Sélectionner le type so', 10, 'BABELARD Christain', 'Directeur Général', 242057787807, 242053393961, 'babelard@gmail.com', 'www.cfco.com'), (61, 'Trans Route', 'boite', 242068396595, 242066924892, 'cfco@gmail.com', 'Sélectionner le type so', 10, 'BABELARD Christain', 'Directeur Général', 242057787807, 242053393961, 'babelard@gmail.com', 'www.cfco.com'), (62, 'Chemino', 'boite', 242068396595, 242066924892, 'cfco@gmail.com', 'F', 10, 'BABELARD Christain', 'Directeur Commercial', 242057787807, 242053393961, 'babelard@gmail.com', 'www.cfco.com'), (63, 'Chemino', 'boite', 242068396595, 242066924892, 'cfco@gmail.com', 'F', 10, 'BABELARD Christain', 'Directeur Commercial', 242057787807, 242053393961, 'babelard@gmail.com', 'www.cfco.com'), (64, 'Chemino', 'boite', 242068396595, 242066924892, 'cfco@gmail.com', 'F', 10, 'BABELARD Christain', 'Directeur Commercial', 242057787807, 242053393961, 'babelard@gmail.com', 'www.cfco.com'); -- -------------------------------------------------------- -- -- Structure de la table `creer_comptes` -- CREATE TABLE IF NOT EXISTS `creer_comptes` ( `nom` varchar(255) NOT NULL, `sexe` varchar(10) NOT NULL, `date_n` date NOT NULL, `tel` bigint(25) NOT NULL, `mail` varchar(255) DEFAULT NULL, `mdp` varchar(30) NOT NULL, `date_c` datetime NOT NULL, PRIMARY KEY (`nom`), UNIQUE KEY `tel` (`tel`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- -- Contenu de la table `creer_comptes` -- INSERT INTO `creer_comptes` (`nom`, `sexe`, `date_n`, `tel`, `mail`, `mdp`, `date_c`) VALUES ('MABENGO Aurell Hermes', 'masculin', '1992-05-04', 242068396595, NULL, '$6$rounds=5000$annacolmanchery', '0000-00-00 00:00:00'); -- -------------------------------------------------------- -- -- Structure de la table `parcourts` -- CREATE TABLE IF NOT EXISTS `parcourts` ( `id_p` int(255) NOT NULL AUTO_INCREMENT, `parcours` varchar(160) NOT NULL, `id_c` int(255) NOT NULL, `type` varchar(25) NOT NULL, `montant` int(255) DEFAULT NULL, PRIMARY KEY (`id_p`), KEY `id_c` (`id_c`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- -- Structure de la table `type_compagnie` -- CREATE TABLE IF NOT EXISTS `type_compagnie` ( `id_t` varchar(2) COLLATE utf8_general_mysql500_ci NOT NULL, `type` varchar(60) COLLATE utf8_general_mysql500_ci NOT NULL, `description` varchar(255) COLLATE utf8_general_mysql500_ci NOT NULL, PRIMARY KEY (`id_t`), KEY `type` (`type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_mysql500_ci COMMENT='Table de type de transport'; -- -- Contenu de la table `type_compagnie` -- INSERT INTO `type_compagnie` (`id_t`, `type`, `description`) VALUES ('A', 'Aérienne', 'avion ou vol'), ('F', 'Ferroviaire', 'train'), ('R', 'Routière', 'voiture ou véhicule'); -- -- Contraintes pour les tables exportées -- -- -- Contraintes pour la table `parcourts` -- ALTER TABLE `parcourts` ADD CONSTRAINT `parcourts_ibfk_1` FOREIGN KEY (`id_c`) REFERENCES `compagnies` (`N°`) ON DELETE CASCADE ON UPDATE CASCADE; /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
Et voici le code pour la page php
Voici le code pour la connexion à la base de données
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
144 <?php session_start(); include ('entete.html'); // Actualisation de la page 3 minutes header("refresh: 180"); // Connexion à la base de données include('ConnexionDB.php'); // Fichier PHP contenant la connexion à ma BDD // la variable "$_Post" contient des informations alors on les traitres if(!empty($_POST)){ extract($_POST); $valid = true; if (isset($_POST['recherche'])){ $vd = htmlentities(trim($distance)); $vc = htmlentities(trim($Filtres)); //$vd = preg_split('/[\s\-]/', $distance); //$vc = preg_split('/[\s\-]/', $compagnie); $resultat = $DB->query("SELECT* FROM parcourts WHERE parcours LIKE '%$vd%' AND type LIKE '%$vc%'"); //$resultat = $resultat->fetchAll() if (! $resultat) die($DB->error); echo "Il y a " . $resultat->num_rows . " résultat correspondant à votre recherche.\n"; while ($resultat = $resultat->fetchAll()); } if(empty($distance)){ $valid = false; $er_distance = ("Le parcourt de la recherche ne peut pas être vide"); } if(empty($compagnie)){ $valid = false; $er_compagnie = ("L'agence de la recherche ne peut pas être vide"); } } ?> </!DOCTYPE html> <html lang="fr"> <head> <meta charset="utf-8"> <title>Rechercher un parcourt</title> <link rel="stylesheet" href="public/css/compte.css"> </head> <body> <div class="m-container"> <h1 class="m-titres">RECHERCHER UN PARCOURT</h1> <form method="post"> <table> <td> <div class="form-group"> <?php // S'il y a une erreur sur la distance alors on affiche if (isset($er_distance)){ ?> <div><?= $er_distance ?></div> <?php } ?> <label for ="distance">Identifant</label> <input class="form-control" type="text" placeholder="Insérez le trajet de la recherche" name="distance" value="<?php if(isset($distance)){ echo $distance; }?>"> <small id="illus" class="m-exemple">Exemple: Dolisie Nkayi</small> </div> </td> <td> <div class="form-group"> <?php if (isset($er_Filtres)){ ?> <div><?= $er_Filtres ?></div> <?php } ?> <select class="form-control" name="Filtres" value="<?php if(isset($Filtres)){ echo $Filtres; }?>"> <option>Sélectionner le moyen de transport</option> <option value= "route">Routier</option> <option value= "vol">Aérien</option> <option value= "train">Chemin de Fer</option> </select> </div> </td> <td> <button type="submit" name="recherche" class="btn-btn">Rechercher</button> </td> </table> </div> </form> <h4 style="font-size: 20px; text-align: center">RESULTAT DE LA RECHERCHE</h4> <table class="table"> <thead> <tr> <th class="tableC" scope="col">Trajets</th> <th class="tableC" scope="col">Agences</th> <th class="tableC" scope="col">Montants</th> </tr> </thead> <tbody> <?php foreach($resultat as $ap){ ?> <tr> <td class="tableL"><?= $ap['parcours'] ?></td> <td><?= $ap['agence'] ?></td> <td><?= $ap['montant'] ?></td> </tr> <?php } ?> </tbody> </table> </div> </body> <html>
Le message d'erreur sont les suivantes
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 <?php // Déclaration d'une nouvelle classe class connexionDB { private $host = 'localhost'; // nom de l'host private $name = 'travel_congo'; // nom de la base de donnée private $user = 'root'; // utilisateur private $pass = ''; // mot de passe private $connexion; function __construct($host = null, $name = null, $user = null, $pass = null){ if($host != null){ $this->host = $host; $this->name = $name; $this->user = $user; $this->pass = $pass; } try{ $this->connexion = new PDO('mysql:host=' . $this->host . ';dbname=' . $this->name, $this->user, $this->pass, array(PDO::MYSQL_ATTR_INIT_COMMAND =>'SET NAMES UTF8', PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ)); }catch (PDOException $e){ echo 'Erreur : Impossible de se connecter à la Base de Données !'; die(); } } public function query($sql, $data = array()){ $req = $this->connexion->prepare($sql); $req->execute($data); return $req->FetchAll(PDO::FETCH_OBJ); } public function insert($sql, $data = array()){ $req = $this->connexion->prepare($sql); $req->execute($data); } } // Faire une connexion à ma fonction $DB = new connexionDB(); ?>
<<Undefined variable: résultat in C:\wamp\www\Travel-Congo\recherche_parcourt.php on line 127>>
<<Invalid argument supplied for foreach () in C:\wamp\www\Travel-Congo\recherche_parcourt.php on line 127>>
Bonjour,
Cette ligne ne veut rien dire...
Code : Sélectionner tout - Visualiser dans une fenêtre à part while ($resultat = $resultat->fetchAll());
De plus, la même variable $resultat est utilisée pour 2 contextes différents.
A éviter.
Il vaut mieux écrire :
Et plus loin :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $resultatAll = $resultat->fetchAll();
Code : Sélectionner tout - Visualiser dans une fenêtre à part foreach($resultatAll as $ap){
Dernière modification par rawsrc ; 19/03/2020 à 12h02.
Jreaux62 j'ai réécrit le code comme vous me lavez suggéré mais j'ai toujours les mêmes messages d'erreur .
bonjour
pourquoi tu parcours ton resultat ligne 35 pour ensuite le parcourir ligne 127?
Partager