Comparer les données d'un formulaire avec celle d'une BDD
Résolu/Fermé
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
-
Modifié par Whismeril le 15/04/2015 à 13:34
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 - 17 avril 2015 à 14:01
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 - 17 avril 2015 à 14:01
A voir également:
- Comparer les données d'un formulaire avec celle d'une BDD
- Formulaire de réclamation facebook - Guide
- Effacer les données de navigation - Guide
- Comment sauvegarder toutes les données de mon téléphone - Guide
- Reinstaller windows sans perte de données - Guide
- Pourquoi effacer les données d'une application - Guide
6 réponses
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
Modifié par Thorak83 le 15/04/2015 à 17:41
Modifié par Thorak83 le 15/04/2015 à 17:41
Bonjour,
Sans connaitre le nom des tables, ni le nom des champs, ça va pas être simple.
Après la connexion, faire une requête SQL avec les critères récupérés.
C'est un exemple, a vous d'adapter
Cordialement
Sans connaitre le nom des tables, ni le nom des champs, ça va pas être simple.
Après la connexion, faire une requête SQL avec les critères récupérés.
$sql = "SELECT champ1, champ2,... From tableVols WHERE champ1 = '".$val1."' AND champ2 = '".$val2."' ORDER BY champdeTrie"; $result = $bdd->query($sql); while($row = $result->fetch(PDO::FETCH_ASSOC)) { echo $row['Champ1']; }
C'est un exemple, a vous d'adapter
Cordialement
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
16 avril 2015 à 11:02
16 avril 2015 à 11:02
Bonjour Thorak83,
Tout d'abord, merci pour votre réponse.
Veuillez m'excuser, voici le nom de mes tables ainsi que mes champs :
Table "aeroport" :
Table "vol" :
La table "aeroport" me servira à trouver le "codeIATA" de l'aéroport que l'utilisateur aura saisi (c'est à dire l'identifiant de l'aéroport).
Ainsi, avec ce "codeIATA" je pourrais trouver dans la table "vol" les vols correspondant.
Si un exemple correspondant à mes tables pourrait m'être proposé, cela me serais plus parlant.
Cordialement.
Tout d'abord, merci pour votre réponse.
Veuillez m'excuser, voici le nom de mes tables ainsi que mes champs :
Table "aeroport" :
Table "vol" :
La table "aeroport" me servira à trouver le "codeIATA" de l'aéroport que l'utilisateur aura saisi (c'est à dire l'identifiant de l'aéroport).
Ainsi, avec ce "codeIATA" je pourrais trouver dans la table "vol" les vols correspondant.
Si un exemple correspondant à mes tables pourrait m'être proposé, cela me serais plus parlant.
Cordialement.
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
16 avril 2015 à 11:48
16 avril 2015 à 11:48
Voici
function dateusfr($dateus) { $date=explode("-",$dateus); return $date[2]."/".$date[1]."/".$date[0]; } function datefrus($datefr) { $date=explode("/",$datefr); return $date[2]."-".$date[1]."-".$date[0]; } $sql = "SELECT * FROM vol WHERE provenance = '".$depart."' AND destination = '".$arrivee."' AND dateDepart = '".datefrus($date_depart)."' AND dateArrivee = '".datefrus($date_retour)."'"; $result = $bdd->query($sql); echo "<table>"; echo "<th>N°Vol</th><th>IDavion</th><th>Provenance</th><th>Destination</th><th>dateDepart</th><th>dateArrivee</th><th>HeureDepart</th><th>heureArrivee</th><th>Etat</th><th>Prix</th>"; while($row = $result->fetch(PDO::FETCH_ASSOC)) { echo "<tr>"; echo "<td>".$row['numeroVol']."</td>"; echo "<td>".$row['IDavion']."</td>"; echo "<td>".$row['provenance']."</td>"; echo "<td>".$row['destination']."</td>"; echo "<td>".dateusfr($row['dateDepart'])."</td>"; echo "<td>".dateusfr($row['dateArrivee'])."</td>"; echo "<td>".$row['heureDepart']."</td>"; echo "<td>".$row['heureArrivee']."</td>"; echo "<td>".$row['Etat']."</td>"; echo "<td>".$row['Prix']."</td>"; echo "</tr>"; } echo "</table>";
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
17 avril 2015 à 09:10
17 avril 2015 à 09:10
Un grand merci, cela va énormément m'aider.
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
Modifié par roms95200 le 17/04/2015 à 09:57
Modifié par roms95200 le 17/04/2015 à 09:57
Après exécution du code suivant:
Quelques erreurs sont affichées :
Cordialement
<?php
// On commence par récupérer les champs
if(isset($_POST['depart'])) $depart=$_POST['depart'];
else $depart="";
if(isset($_POST['arrivee'])) $arrivee=$_POST['arrivee'];
else $arrivee="";
if(isset($_POST['date_depart'])) $arrivee=$_POST['date_depart'];
else $date_depart="";
if(isset($_POST['date_retour'])) $arrivee=$_POST['date_retour'];
else $date_retour="";
if(isset($_POST['adultes'])) $arrivee=$_POST['adultes'];
else $adultes="";
if(isset($_POST['enfants'])) $arrivee=$_POST['enfants'];
else $enfants="";
if(isset($_POST['classe'])) $arrivee=$_POST['classe'];
else $classe="";
// Connexion à la base de donnée
try
{
$bdd = new PDO ('mysql:host=localhost;dbname=databasegestionvol;charset=utf8', 'root', '');
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
function dateusfr($dateus)
{
$date=explode("-",$dateus);
return $date[2]."/".$date[1]."/".$date[0];
}
function datefrus($datefr)
{
$date=explode("/",$datefr);
return $date[2]."-".$date[1]."-".$date[0];
}
$sql = "SELECT * FROM vol WHERE provenance = '".$depart."' AND destination = '".$arrivee."' AND dateDepart = '".datefrus($date_depart)."' AND dateArrivee = '".datefrus($date_retour)."'";
$result = $bdd->query($sql);
echo "<table>";
echo "<th>N°Vol</th><th>IDavion</th><th>Provenance</th><th>Destination</th><th>dateDepart</th><th>dateArrivee</th><th>HeureDepart</th><th>heureArrivee</th><th>Etat</th><th>Prix</th>";
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
echo "<tr>";
echo "<td>".$row['numeroVol']."</td>";
echo "<td>".$row['IDavion']."</td>";
echo "<td>".$row['provenance']."</td>";
echo "<td>".$row['destination']."</td>";
echo "<td>".dateusfr($row['dateDepart'])."</td>";
echo "<td>".dateusfr($row['dateArrivee'])."</td>";
echo "<td>".$row['heureDepart']."</td>";
echo "<td>".$row['heureArrivee']."</td>";
echo "<td>".$row['Etat']."</td>";
echo "<td>".$row['Prix']."</td>";
echo "</tr>";
}
echo "</table>";
?>
Quelques erreurs sont affichées :
Cordialement
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
17 avril 2015 à 10:00
17 avril 2015 à 10:00
plusieurs erreurs:
regardez cette partie de code, tout est en $arrivee =....
regardez cette partie de code, tout est en $arrivee =....
if(isset($_POST['depart'])) $depart=$_POST['depart']; else $depart=""; if(isset($_POST['arrivee'])) $arrivee=$_POST['arrivee']; else $arrivee=""; if(isset($_POST['date_depart'])) $arrivee=$_POST['date_depart']; else $date_depart=""; if(isset($_POST['date_retour'])) $arrivee=$_POST['date_retour']; else $date_retour=""; if(isset($_POST['adultes'])) $arrivee=$_POST['adultes']; else $adultes=""; if(isset($_POST['enfants'])) $arrivee=$_POST['enfants']; else $enfants=""; if(isset($_POST['classe'])) $arrivee=$_POST['classe']; else $classe="";
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
17 avril 2015 à 10:05
17 avril 2015 à 10:05
les autres erreurs viennent de la conversion datefr en dateus
Quel est le format de saisie des dates dans le formulaire ?
Quel est le format de saisie des dates dans le formulaire ?
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
>
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
Modifié par roms95200 le 17/04/2015 à 10:23
Modifié par roms95200 le 17/04/2015 à 10:23
Dans mon formulaire le format de saisie est par exemple "17/04/2015" en revanche sur ma BDD le format est du type "2015-04-17"
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
17 avril 2015 à 10:24
17 avril 2015 à 10:24
je n'ai aucune erreur personnellement
if(isset($_POST['depart'])) $depart=$_POST['depart']; else $depart=""; if(isset($_POST['arrivee'])) $arrivee=$_POST['arrivee']; else $arrivee=""; if(isset($_POST['date_depart'])) $date_depart=$_POST['date_depart']; else $date_depart=""; if(isset($_POST['date_retour'])) $date_retour=$_POST['date_retour']; else $date_retour=""; if(isset($_POST['adultes'])) $adultes=$_POST['adultes']; else $adultes=""; if(isset($_POST['enfants'])) $enfants=$_POST['enfants']; else $enfants=""; if(isset($_POST['classe'])) $classe=$_POST['classe']; else $classe="";
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
17 avril 2015 à 10:42
17 avril 2015 à 10:42
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
17 avril 2015 à 10:52
17 avril 2015 à 10:52
C'est déjà bien. Surement qu'aucun critère ne correspond à la recherche.
ajouter print_r($_POST);
tout en haut du fichier et coller ici ce qu'il affiche
ajouter print_r($_POST);
tout en haut du fichier et coller ici ce qu'il affiche
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
Modifié par roms95200 le 17/04/2015 à 11:01
Modifié par roms95200 le 17/04/2015 à 11:01
Voici :
Array ( [aller_retour] => on [depart] => CDG [arrivee] => FCO [date_depart] => 16/06/2015 [date_retour] => 23/06/2015 [adultes] => 1 [enfants] => 1 [classe] => economique [rechercher] => Rechercher un vol )
N°Vol IDavion Provenance Destination dateDepart dateArrivee HeureDepart heureArrivee Etat Prix
Array ( [aller_retour] => on [depart] => CDG [arrivee] => FCO [date_depart] => 16/06/2015 [date_retour] => 23/06/2015 [adultes] => 1 [enfants] => 1 [classe] => economique [rechercher] => Rechercher un vol )
N°Vol IDavion Provenance Destination dateDepart dateArrivee HeureDepart heureArrivee Etat Prix
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
17 avril 2015 à 11:34
17 avril 2015 à 11:34
C'est normal il n'y a pas de vol correspondant à ces critères
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
>
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
17 avril 2015 à 11:36
17 avril 2015 à 11:36
Si regardez à la 3eme et 4eme ligne de ma table vol
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
17 avril 2015 à 11:36
17 avril 2015 à 11:36
dans votre table vol à quoi correspond date_arrivée ?
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
17 avril 2015 à 11:38
17 avril 2015 à 11:38
si vous remplacez la requête SQL par
vous aurez tous les vols en partance
$sql = "SELECT * FROM vol WHERE provenance = '".$depart."' AND dateDepart = '".datefrus($date_depart)."'";
vous aurez tous les vols en partance
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
>
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
Modifié par roms95200 le 17/04/2015 à 11:52
Modifié par roms95200 le 17/04/2015 à 11:52
date_arrivee correspond à la date à laquelle l'avion arrivera a destination ( elle peut être différente de la date_depart pour les longs vols )
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
Modifié par roms95200 le 17/04/2015 à 11:50
Modifié par roms95200 le 17/04/2015 à 11:50
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
Modifié par Thorak83 le 17/04/2015 à 12:07
Modifié par Thorak83 le 17/04/2015 à 12:07
manque un D dans dateArrivee en ligne 72
pareille etat en minuscule et prix aussi
pareille etat en minuscule et prix aussi
echo "<td>".dateusfr($row['DateArrivee'])."</td>"; echo "<td>".$row['etat']."</td>"; echo "<td>".$row['prix']."</td>";
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
17 avril 2015 à 12:07
17 avril 2015 à 12:07
erreur de jeunesse. Soit vous mettez tous vos champs en Maj soir tout en Minuscule c'est plus simple à gérer
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
>
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
17 avril 2015 à 12:14
17 avril 2015 à 12:14
Ah oui tout a fait j'avais pas fais attention à ce petit détail.
Désormais le site me renvoi bien la ligne correspondante et tout cela sans erreur ! :)
Désormais le site me renvoi bien la ligne correspondante et tout cela sans erreur ! :)
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
156
17 avril 2015 à 12:16
17 avril 2015 à 12:16
Si vous voulez les aller et retour essayez ceci
$sql = "SELECT * FROM vol WHERE (provenance = '".$depart."' AND destination = '".$arrivee."' AND dateDepart = '".datefrus($date_depart)."') OR (provenance = '".$arrivee."' AND destination = '".$depart."' AND dateDepart = '".datefrus($date_retour)."')";
roms75001
Messages postés
395
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
9 juillet 2017
7
>
Thorak83
Messages postés
1051
Date d'inscription
jeudi 20 juin 2013
Statut
Membre
Dernière intervention
22 décembre 2017
17 avril 2015 à 12:19
17 avril 2015 à 12:19
Ca marche !!!!
Un grand merci pour votre aide et votre patience, vous m'avez retiré une grosse épine du pied ! :)
Un grand merci pour votre aide et votre patience, vous m'avez retiré une grosse épine du pied ! :)