Ajout de vol a la base de donnée

Résolu/Fermé
Signaler
Messages postés
15
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
21 mars 2018
-
Messages postés
15
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
21 mars 2018
-
BONJOUR,
j'essaye d'ajouter des vols a la base de donnée a partir d'un formulaire mais jarrive pas
voici mon code HTML :


<html>
    <head>
    <meta charset="utf-8"  
       
        <title>gestion de vols </h1></title>
 <style type="text/css">
   #a{
    width:50%;
    height: 60%;
    margin:10% auto;

   }
 </style>
  </head>
 
  <body>
 
    <fieldset id="a"> 
    <center> <!-- Formulaire pour trouver un vol -->
  <table width=400 height=200>
    <br>
        <caption><B> Ajouter Un Vol </B></caption>
    <br>
    <form method="post" action="gestion-v.php">
 
      <tr><td>
      <label>Départ</label> : <br><input type="text" name="aeropdep" id="aeropdep" /> 
      </td>
      <td>
      <label>Arrivée</label> : <br><input type="text" name="aeroparriv" id="aeroparriv" />
      </tr></td>
 
      <tr><td>
      <!-- Tableau qui contiendra le calendrier ! -->
        
 
      <tr><td>
      <label>Date de départ :<br></label><input type="Date" name="datdep" id="datdep"  />
      </td>       
 
      
        <!-- <td><label for="classe">Classe :</label><br> 
      
          <select name="class" id="classe">
           <option value="economique">Economique</option>
           <option value="affaire">Affaire</option>
           <option value="premiere">Première</option>
        </select>
 
        
 </td>
 
      
 
 </tr>
      </tr>-->
      <td>
      <label>Nombre de place </label> : <br><input type="Nombre" name="nbreplace"  id="nbreplace" /> 
      </td></tr><br>
      <tr><td>
      <label>Heure de depart </label> : <br><input type="time" name="heurdep" id="heurdep" /> 
      </td>
    <td>
      <label>Date de retour :<br></label><input type="date" name="datret" id="datret" />
      </td>  </tr>
 
      <tr><td>
        <input type="submit" value="Ajouter" id="valider" name="valider" />
      </tr></td>
    </table>
    </center>
    </fieldset>
    </body>
</html>


et voici le PHP:


<?php

    include ('connexion.php');
if(isset($_POST['valider'])) 
 
  { if(($_POST['aeropdep']!='')&&($_POST['aeroparriv']!=''))
 
 
  
  $aeropdep = $_POST['aeropdep'] ;
 
  $aeroparriv = $_POST['aeroparriv'] ;
  
$datdep= $_POST['datdep'];
$datret=$_POST['datret'];

  //adresse:
  $nbreplace = $_POST['nbreplace'] ;
  //numéro de téléphone:
  $heurdep = $_POST['heurdep'];
 
   
        $query=$connexion->prepare('INSERT INTO `agence de voyage`.`vols` (`id-vol`, `h_depar_vol`, `aerop_depar_vol`, `aerop_arriv_vol`, `dat_dep_vol`, `dat_ret_vol`, `nbre_place`)VALUES (\'\', :heurdep, :aeropdep, :aeroparriv, :datdep, :datret, :nbreplace)');
        
  $query->bindValue('', PDO::PARAM_INT);
 $query->bindValue(':heurdep', $heurdep, PDO::PARAM_INT);
 $query->bindValue(':aeropdep', $aeropdep, PDO::PARAM_STR);
 $query->bindValue(':aeroparriv', $aeroparriv, PDO::PARAM_STR);
 $query->bindValue(':datdep', $datdep, PDO::PARAM_INT);
 $query->bindValue(':datret', $datret, PDO::PARAM_INT);
 $query->bindValue(':nbreplace', $nbreplace, PDO::PARAM_INT);
 
 
        $query->execute();

 //Et on définit les variables de sessions
       
       $_SESSION['id-vol'] = $connexion->lastInsertId();
     
        $query->CloseCursor();
}    
    header('Location: connexion.html');
?>



quand je l'execute il m'affiche toujours ce message :

Warning: PDOStatement::execute() [pdostatement.execute]: SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:\Program Files\EasyPHP-5.3.5.0\www\SITE AGENCE DE VOYAGE\gestion-v.php on line 40


svp aidez moi c urgent!!!!
merci a l'avance.

1 réponse

Messages postés
34234
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 décembre 2021
3 861
Bonjour,

Déjà... si ton champ ID est de type autoincrémenté ...il ne faut pas le préciser dans ta requête INSERT.
Ensuite, tu ne peux pas "binder" du "vide"
Donc.. retire cette ligne la :
$query->bindValue('', PDO::PARAM_INT); 

et modifie ta requête en retirant l'id
INSERT INTO `agence de voyage`.`vols` 
( `h_depar_vol`, `aerop_depar_vol`, `aerop_arriv_vol`, `dat_dep_vol`, `dat_ret_vol`, `nbre_place`)
VALUES ( :heurdep, :aeropdep, :aeroparriv, :datdep, :datret, :nbreplace)


Messages postés
15
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
21 mars 2018

merci beaucoup
Messages postés
15
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
21 mars 2018

dsl pour le derangement
mais comment on verifie le remplissage des champs en javascript?
Messages postés
34234
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
5 décembre 2021
3 861 >
Messages postés
15
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
21 mars 2018

Autre question = ouverture d'une nouvelle discussion.
Et au passage ...merci de mettre celle ci en "RESOLUE" avant.

PS: Concernant ta question.. je veux bien répondre... mais as tu au moins pris le temps de chercher un minimum avant ??
Messages postés
15
Date d'inscription
samedi 10 mars 2018
Statut
Membre
Dernière intervention
21 mars 2018

dsl c ma premiere fois dans ce groupe
j vais essaye de le mettre en resolu
et oui j essaye pas mal de code mais ne marche pas