Formulaire vol

emnaaaa - 19 févr. 2013 à 15:10
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 - 27 févr. 2013 à 16:30
Bonjour,
je suis entrain de développer un site pour une agence de voyage. je me suis arrêté à la page Vol dans la quelle je souhaiterai faire une recherche par lieu départ et date départ. je vous transmet le code html et php:
Vol.php:








Vol




Au départ de:,


Tunis
sfax
Djerba
Monastir
Nfidha
Tozeur,

----

A destination de:,


Orly
charles degaul
Zurich
Italy,

----

Date de départ:,
,

----

Date d'arrivé:,
,

----

,

----










et la partie connexion et récupération de données:

37 réponses

Toujours le même message d'erreur:
-ghts-
Impossible d'ouvrir la base de données
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
20 févr. 2013 à 16:09
Même avec Wamp ?

On va tenter une expérience :) avec un petit script.
Crée un nouveau dossier dans le dossier root du serveur www
On va l'appelé test.
Tu crées une base de donnée que l'on va nommer "test_01"
Donc, dans le dossier www/test/ tu crées un fichier que l'on va nommer index.php
Et voici le script à mettre dedans :
<?php
// connexion à la base de données
try {
    $conn = new PDO('mysql:host=localhost;dbname=test_01', 'root', '');
} catch(Exception $e) {
    exit('Impossible de se connecter à la base de données.');
}

$stmt = $conn->prepare("SELECT id,nom FROM test ORDER BY nom");
$stmt->execute();

$a_test = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    $json[$row['id']][] = utf8_encode($row['nom']);
}

echo '';
print_r($json);
echo '

';


Pour la db, voici une table pour le test.
CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=13 ;

--
-- Contenu de la table `test`
--

INSERT INTO `test` (`id`, `nom`) VALUES
(1, 'Alibori'),
(2, 'Atacora'),
(3, 'Atlantique'),
(4, 'Borgou'),
(5, 'Collines'),
(6, 'Couffo'),
(7, 'Donga'),
(8, 'Littoral'),
(9, 'Mono'),
(10, 'Ouémé'),
(11, 'Plateau'),
(12, 'Zou');


Tu vérifies sur http://localhost/test/index.php

stéph
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
20 févr. 2013 à 16:11
J'ai fait une erreur dans les variables
remplace le code index.php
par ceci :
<?php
// connexion à la base de données
try {
    $conn = new PDO('mysql:host=localhost;dbname=test_01', 'root', '');
} catch(Exception $e) {
    exit('Impossible de se connecter à la base de données.');
}

$stmt = $conn->prepare("SELECT id,nom FROM test ORDER BY nom");
$stmt->execute();

$a_test = array();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    $a_test[$row['id']][] = utf8_encode($row['nom']);
}

echo '';
print_r($a_test);
echo '

';


stéph
0
c'est ce qui m'a affiché
Array
(
[1] => Array
(
[0] => Alibori
)

[2] => Array
(
[0] => Atacora
)

[3] => Array
(
[0] => Atlantique
)

[4] => Array
(
[0] => Borgou
)

[5] => Array
(
[0] => Collines
)

[6] => Array
(
[0] => Couffo
)

[7] => Array
(
[0] => Donga
)

[8] => Array
(
[0] => Littoral
)

[9] => Array
(
[0] => Mono
)

[10] => Array
(
[0] => Ouémé
)

[11] => Array
(
[0] => Plateau
)

[12] => Array
(
[0] => Zou
)

)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
20 févr. 2013 à 16:58
Super, donc tu as bien accès à la db.

Pour ton code personnel, je ne vois pas directement pourquoi la base de donnée n'est pas sélectionnée.
C'est bizarre !

Mais, tu peux essayer d’adapter mon script dans ton script.
Mais si tu utilises l'api PDO, tout devra être en PDO.
Pas uniquement la connexion à la db car la suite avec l'api mysql_ ne fonctionnerait plus.

Mais c'est important que tu testes en PDO.
Sinon, tu vas proposer à ton amie un code vieux de 15 ans ou les hackers se feront un plaisir de supprimer ta db en une manipulation via le formulaire.

Voici un tuto pour PDO.
Voici un lien pour la doc de PDO.

:) courage !

stéph
0
Merci beaucoup pour ton aide. je vais prendre toutes vos conseils en considération ca va m'aider trop.
MErciii!!
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
20 févr. 2013 à 17:19
Super :) ça me fait plaisir.
N'hésites pas à revenir.

A+ :)

stéph
0
Re :)
j'ai corrigé tout les erreurs dans le fichier rechercher.php.
il me reste maintenant l'affichage du résultat dans un tableau dans la page vol.php juste après le formulaire de recherche.
je vous transmet le résultat quand je clique sur le boutton rechercher:
Connexion réussie
Campany

tarif

heure depart

heure arrive

Cordialement.
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
27 févr. 2013 à 10:09
Super, très beau travail

stéph
0
je souhaiterai que vous m'aidiez.
comment je fait pour afficher le résultat dans la page vol.php après le formulaire de recherche.j'ai pas trouvé une solution claire.
cordialement.
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
27 févr. 2013 à 11:11
Donc, pour un exemple de script, on avais fait un test le mercredi 20 février 2013 à 16:11:09.
Et pour les conseils, je t'avais proposé la documentation PDO le mercredi 20 février 2013 à 16:58:58.

Tu maitrises Photoshop ou un autre programme avancé pour la création de ton layout ?

Mois, je fonctionne comme ceci, je crée le layout, par la suite, je découpe et j'intègre dans l'HTML.
Car si je ne suis pas satisfais du layout, c'est plus simple et rapide de recommencer ou de modifier une image que de toucher au code pendant le développement.
Et cela te laisse une assurance en vers le client qui voudrait un éventuel changement à la présentation du layout.
Une fois valider, tu es tranquille pour développer.

stéph
0
j'ai une idée sur photoshop mais pour la création de layout non plus.
Est ce que vous pouvez me recommander un lien ou un exemple pour que je comprend ton idée.
Merciiii :)
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
27 févr. 2013 à 11:32
Si tu as une idée sur Photoshop, tu as un layout prêt à être découpée ?
Pour l'exemple, tu tapes travel ou voyage dans Google , tu vas bien trouver un exemple design sur un site.

Mais peut-être que je n'ai pas bien compris ta question.
Sois plus précise.

stéph
0
Franchement je n'ai pas compris ce que vous venez m'expliquer.
je vous explique mon idée si vous n'avez pas compris la mienne.
je souhaiterai afficher le résultat récupérer de la base de données juste après le formulaire de recherche.
je suis désolé si je vous ne comprend pas.
Cordialement
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
27 févr. 2013 à 12:13
Tu te répètes.

Je parlais de cette réponse

j'ai une idée sur photoshop mais pour la création de layout non plus.

Si mon poste précédent à répondu à ta question; parfait :)
Sinon reformule ta réponse, car quand tu dis "j'ai une idée sur photoshop (pour moi, c'est le layout)" et quand tu dis "mais pour la création de layout non plus".
Donc, pas très français tout cela.

Mais ne me parle plus de

je souhaiterai afficher le résultat récupérer de la base de données juste après le formulaire de recherche.

Car, j'ai très bien compris et tu as déjà une partie du code pour le faire.
Par contre, si tu as des difficultés dans ton code à la création, soit précise dans ta question :)

stéph
0
Pour l'affichage tu tableau je ne reçoit que la première ligne contenant les champs du tableau:
Campany tarif heure depart heure arrive
0
cs_stay Messages postés 493 Date d'inscription jeudi 7 juillet 2005 Statut Membre Dernière intervention 24 mai 2017 4
27 févr. 2013 à 16:30
Oui, dans l'exemple que je t'ai donnée, c'est pour un seul enregistrement.
tu dois faire un fetchAll dans ta boucle.


stéph
0
Rejoignez-nous