Ajout de vol a la base de donnée

Résolu
mili12loli1 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -  
mili12loli1 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention   -
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753
 
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   Statut Membre Dernière intervention  
 
merci beaucoup
0
mili12loli1 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
dsl pour le derangement
mais comment on verifie le remplissage des champs en javascript?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 753 > mili12loli1 Messages postés 15 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention  
 
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