Bonjour
Aidez-moi svp, merci !
Je fais un petit TP de facturation. J'aimerais mettre la facture à jour à partir de son identifiant mais j'ai ce message d'erreur :
Fatal error: Uncaught PDOException: SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Facturation\updateFacture.php:21Stack trace:#0 C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Facturation\updateFacture.php(21): PDOStatement->execute(Array)#1 {main} thrown in C:\Program Files (x86)\EasyPHP-Devserver-17\eds-www\Facturation\updateFacture.php on line 21
Voici mon formulaire qui récupère les données de la facture,
modifierFacture.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?phprequire_once 'connexion.php';
 
 
$resFC = $base->prepare('SELECT * FROM facturation WHERE id= ?');
$resFC->execute(array($_GET['id']));
?>
<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <title>Créer une facture</title>
    <link rel="stylesheet" href="style.css" media="all" />
  </head>
  <body>
    <br/><br/>
    <main>
<?php require_once('includes/menu.php') ?>
<br/><br/><br/>
<?php foreach ($resFC as $req): ?>
<?= '<form action="updateFacture.php?id='.$req['id'].'" method="post">' ?>
  <fieldset>
    <legend>Infos de votre entreprise</legend>
    <textarea id="facturede" name="facturede" rows="4" cols="45"
      placeholder="Votre entreprise: Raison sociale, adresse.." required><?php echo $req['facturede'] ?></textarea><br/><br/>
    <label for="file">Sélectionner votre logo</label>
    <input name="logo" type="file" size=50>
    <input type="hidden" name="MAX_FILE_SIZE" value="250000" />
  </fieldset><br/>
 
 
  <fieldset>
    <legend>Infos de base</legend>
    <input type="text" placeholder="Numéro de la facture" name="num" value="<?php echo $req['num'] ?>"><br/><br/>
    <label>Date de la facture </label>
    <input type="date" name="dateFacture" value="<?php echo $req['dateFacture'] ?>"><br/><br/>
    <textarea name="client" rows="4" cols="45"
        placeholder="Facturé à: Raison sociale, adresse.." required><?php echo $req['client'] ?>
    </textarea>
    <br/><br/>
    <textarea name="conditions" rows="10" cols="45"
        placeholder="Conditions et paiements" required><?php echo $req['conditions'] ?></textarea>
  </fieldset><br/>
 
 
            <fieldset>
            <legend>Contenu de la facture formation</legend>
            <textarea name="prestation" rows="4"
              placeholder="Prestation" required><?php echo $req['prestation'] ?></textarea><br/><br/>
            <input type="number" placeholder="Nombre de jours" name="nbjours" value="<?php echo $req['nbjours'] ?>" required><br/><br/>
            <input type="number" placeholder="Tarif journalier" name="tarifjour" value="<?php echo $req['tarifjour'] ?>" required><br/><br/>
            <!-- <input type="number" placeholder="Taxe" name="taxe"><br/><br/> -->
            <!-- <input type="number" placeholder="Total du montant HT" name="montantHT"><br/><br/> -->
            </fieldset>
<br/>
    <input type="submit" value ="Mettre à jour une facture" />
      </form>
      <?php endforeach; ?>
      <br/>
    </main>
      <?php require_once('includes/footer.php') ?>
  </body>
</html>
updateFacture.php
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<?phprequire_once 'connexion.php';
$req = $base->prepare('UPDATE facturation
  SET num = :num,
  client = :client,
  prestation = :prestation,
  nbjours = :nbjours,
  tarifjour = :tarifjour,
  dateFacture = :dateFacture,
  facturede = :facturede,
  conditions = :conditions
  WHERE id= ?');
  $req->execute(array('num' => $num,
                          'client' => $client,
                          'prestation'=> $prestation,
                          'nbjours'=> $nbjours,
                          'tarifjour'=> $tarifjour,
                          'dateFacture'=> $dateFacture,
                          'facturede'=> $facturede,
                          'conditions'=> $conditions,
                          'id'=> $id));
?>
<!DOCTYPE html>
<html lang="fr">
  <head>
    <meta charset="utf-8">
    <title>Mise à jour Facture</title>
    <link rel="stylesheet" href="style.css" media="all" />
  </head>
  <body>
    <header class="clearfix">
 
 
    </header>
    <?php require_once('includes/menu.php') ?>
    <br/> <br/>
    <main>
      <p> Les données ont bien été mise à jour</p>
    </main>
    <?=   $base = null; ?>
    <?php require_once('includes/footer.php') ?>
  </body>
</html>