Ajout de vol a la base de donnée

Résolu/Fermé
mili12loli1 Messages postés 15 Date d'inscription samedi 10 mars 2018 Statut Membre Dernière intervention 21 mars 2018 - Modifié le 10 mars 2018 à 15:37
mili12loli1 Messages postés 15 Date d'inscription samedi 10 mars 2018 Statut Membre Dernière intervention 21 mars 2018 - 10 mars 2018 à 20:09
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

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
10 mars 2018 à 15:37
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)


0
mili12loli1 Messages postés 15 Date d'inscription samedi 10 mars 2018 Statut Membre Dernière intervention 21 mars 2018
10 mars 2018 à 15:43
merci beaucoup
0
mili12loli1 Messages postés 15 Date d'inscription samedi 10 mars 2018 Statut Membre Dernière intervention 21 mars 2018
10 mars 2018 à 19:58
dsl pour le derangement
mais comment on verifie le remplissage des champs en javascript?
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > mili12loli1 Messages postés 15 Date d'inscription samedi 10 mars 2018 Statut Membre Dernière intervention 21 mars 2018
10 mars 2018 à 20:00
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 ??
0
mili12loli1 Messages postés 15 Date d'inscription samedi 10 mars 2018 Statut Membre Dernière intervention 21 mars 2018
10 mars 2018 à 20:09
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
0