PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 05-04-2019 14:51:13

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Envoi d'un formulaire dans une base de données

Bonjour. je bloque sur un problème que je pense de PHP et je voudrais demander votre aide.
je développe en local avec Wamp serveur et j'ai un formulaire qui après remplissage doit a travers un fichier php envoyer des information a ma base de données. Seulement lorsque je soumet le formulaire, j'ai ce message d'erreur que je n'arrive pas a passer. ci joint mes codes. Merci de m'aider

Ma page html

<html>
<body>

<form action="insertion.php" method="post">
Nom: <input type="text" name="Nom"><br>
Prenom: <input type="text" name="Prenom"><br>
CNIB: <input type="text" name="CNIB"><br>
Tel 1: <input type="text" name="TEL1"><br>
Tel 2: <input type="text" name="TEL2"><br>
<label>
  <input type="submit"/>
<label/>
</form>

</body>
</html>

Mon fichier de traitement php

<?php
//connexion
include('connexion.php');
//print_r($_FILES);
if( isset($_POST['Valider']) ) // si formulaire soumis

 
$text_rep= $_POST['Nom'];
$text_rep= $_POST['Prenom'];
$text_rep= $_POST['CNIB'];
$text_rep= $_POST['TEL1'];
$text_rep= $_POST['TEL2'];
$requete = "INSERT INTO `formulaire` (`id`, `nom`, `prenom`, `cnib`, `tel1`, `tel2`)
      VALUES(NULL,'$nom','$prenom','$cnib','$tel1','$tel2');";
 $resultat= $bdd-> exec($requete);
if($resultat==1) { echo'les information ont bien été enregistrer';
}else {
echo ' ohlala ...problème';
}


?>

et là le message d’erreur qui  revient

Notice: Undefined variable: nom in C:\wamp64\www\projet\insertion.php on line 14
Notice: Undefined variable: prenom in C:\wamp64\www\projet\insertion.php on line 14
Notice: Undefined variable: cnib in C:\wamp64\www\projet\insertion.php on line 14
Notice: Undefined variable: tel1 in C:\wamp64\www\projet\insertion.php on line 14
Notice: Undefined variable: tel2 in C:\wamp64\www\projet\insertion.php on line 14
les information ont bien été enregistrer


la fameuse ligne 14 est la suivante

VALUES(NULL,'$nom','$prenom','$cnib','$tel1','$tel2');";

je précise qu’après verification, il s'averse que le "id" et la "date" sont bel et bien prient a chaque fois mais pas les autres informations.

Dernière modification par filabala321 (05-04-2019 14:53:35)


Hors ligne

#2 05-04-2019 22:50:13

tof73
Membre
Inscription : 21-12-2014
Messages : 149
Site Web

Re : Envoi d'un formulaire dans une base de données

$text_rep= $_POST['Nom'];

il est donc mis le nom dans la variable $text_rep, variable qui n'est pas utilisée ensuite.

$text_rep= $_POST['Prenom'];

il est donc mis le prenom dans la variable $text_rep, variable qui n'est pas utilisée ensuite.

...

Hors ligne

#3 07-04-2019 03:32:59

KOogar
Membre
Lieu : PHP
Inscription : 09-05-2009
Messages : 32
Site Web

Re : Envoi d'un formulaire dans une base de données

Bonjour,

Je t'ai refais le code vite fait, si tu as des questions hésites pas.

<?php

    $nom = $_POST['Nom'];
    $prenom = $_POST['Prenom'];
    $cnib = $_POST['CNIB'];
    $tel1 = $_POST['TEL1'];
    $tel2 = $_POST['TEL2'];

    $requete = "INSERT INTO `formulaire` (`id`,
                                          `nom`,
                                          `prenom`,
                                          `cnib`,
                                          `tel1`,
                                          `tel2`)
                       VALUES(NULL,
                             '$nom',
                             '$prenom',
                             '$cnib',
                             '$tel1',
                             '$tel2');";

    $resultat= $bdd-> exec($requete);

    if($resultat==1) echo'les information ont bien été enregistrer';
    else echo ' ohlala ...problème';


?>

Hors ligne

#4 11-04-2019 18:25:11

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Re : Envoi d'un formulaire dans une base de données

Merci énormément Tof73 & KOogar! Vous m'avez été d'un grand secourt. Grace à vous j'ai compris et corriger l'erreur.

Je vous demande une dernière chose, que veut dire ce message

Fatal error: Uncaught Error: Call to undefined function mysql_query() in C:\wamp64\www\projet\modifier.php on line 27
( ! ) Error: Call to undefined function mysql_query() in C:\wamp64\www\projet\modifier.php on line 27

voici le code cette fameuse ligne :

mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

et maintenant le code entier

<?php
//connexion
include('connexion.php');

if(isset($_POST['Bouton']))
   // Réecriture des variables
   $Lun=$_POST['lun'];
   $Mar=$_POST['mar'];
   $Mer=$_POST['mer'];
   $Jeu=$_POST['jeu'];
   $Ven=$_POST['ven'];
   $Sam=$_POST['sam'];
   $Dim=$_POST['dim'];
   
   // lancement de la requête de modification d'enregistrement
   $sql ="UPDATE formulaire SET
   lun='$Lun',
   mar='$Mar',
   mer='$Mer',
   jeu='$Jeu',
   ven='$Ven',
   sam='$Sam',
   dim='$Dim' ";

   
 // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());
?>

Hors ligne

#5 11-04-2019 19:15:57

tof73
Membre
Inscription : 21-12-2014
Messages : 149
Site Web

Re : Envoi d'un formulaire dans une base de données

https://www.php.net/manual/fr/function.mysql-query.php
"Cette extension était obsolète en PHP 5.5.0, et a été supprimée en PHP 7.0.0"
j'en conclus que vous êtes en php 7

Hors ligne

#6 12-04-2019 19:54:44

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Re : Envoi d'un formulaire dans une base de données

effectivement je suis sur php7.1.9 Si donc le problème venait de cette extension, j'ai refais mon code sous mysqli (selon ton lien) et j'ai obtenu ce résultat. Mais il ne marche pas. j’obtiens cette erreur :

Parse error: syntax error, unexpected '$mysqli' (T_VARIABLE) in C:\wamp64\www\projet\modifier.php on line 27  (je signale que c'est la dernière ligne de mon code)

je vous met ici le code entier (celui refait sous msqli)

<?php
//connexion
include('connexion.php');

if(isset($_POST['Bouton']))
   // Réecriture des variables
   $_POST['lun'];
   $_POST['mar'];
   $_POST['mer'];
   $_POST['jeu'];
   $_POST['ven'];
   $_POST['sam'];
   $_POST['dim'];
   
   // lancement de la requête de modification d'enregistrement
   $requete='UPDATE formulaire SET
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'",
   lun="'.$_POST['Lun'].'" '

   
 // on exécute la requête (mysql_query) et on affiche un message au cas où la requête ne se passait pas bien (or die)
$mysqli->query($requete);

?>

Hors ligne

#7 12-04-2019 20:25:16

KOogar
Membre
Lieu : PHP
Inscription : 09-05-2009
Messages : 32
Site Web

Re : Envoi d'un formulaire dans une base de données

et que contient votre fichier connexion.php ?

Hors ligne

#8 15-04-2019 08:41:48

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Re : Envoi d'un formulaire dans une base de données

Bonjour. Merci pour l'aide. Avec une tête un peu reposée j'ai finalement trouver les erreurs (syntaxique d'abord, de structure ensuite et enfin de choix). Il me fallait compléter les différents jours de la semaine, rajouter un semi-colon à la fin de la dernière ligne de la requête (ce qui donne: dim="'.$_POST['Dim'].'" ';) pour boucle celle-ci et enfin utilise PDO pour l’exécution de la requête.

Par contre j'ai (encore big_smile) un nouveau soucis: <<Undefined index:>> que je ne comprends pas jusque là. Un coup de pouce serait salutaire. Merci!

Pour que vous puissiez m'aider en ayant une vision claire du projet, je vous met tous les codes avec captures d'écrans. Merci d'avance et désoler de vous prendre la tête big_smile

01 - La page index (formulaire)

<?php
$currentWeekNumber = date('W');
echo "Nous sommes à la semaine N°" . date("W") . " de l'année ". date("Y") ."";
?>

<!DOCTYPE html>
<html>

<head>
  <title>formulaire-journalier</title>
 
</head>

<body>

<form action="insertion.php" method="post">
Nom:  <input type="text" name="Nom"><br>
Prenom: <input type="text" name="Prenom"><br>
CNIB:   <input type="text" name="CNIB"><br>
Tel 1:  <input type="text" name="Tel1"><br>
Tel 2:  <input type="text" name="Tel2"><br>
<label>
  <input type="submit"/>
  <input type="reset" value="Reinitialiser"><br>
  <a href="affiche.php"> <input type="button" value="Voir la liste des inscrits"></a>
  <a href="pointer.php"> <input type="button" value="pointer"></a>
</label>
</form><br>

</body>

</html>

1k0.jpg

02- La page connection

<?php


try {
    $bdd = new PDO("mysql:host=localhost;dbname=bdd_journaliers;charset=utf8", "root",
        "", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));  
}
catch (Exception $e) {
    die('Erreur fatale : ' . $e->getMessage());
}


?>

03 - La page insertion

<?php
//connexion
include('connexion.php');

if( isset($_POST['Valider']) ) // si formulaire soumis

// recuperons à présent les infos entrees dans le formulaire
$Date= $_POST[''];  // il faut rajouter cette 6ème ligne pour equilibrer avec le nombre de collone dans la table (bdd)
$Nom= $_POST['Nom'];
$Prenom= $_POST['Prenom'];
$CNIB= $_POST['CNIB'];
$Tel1= $_POST['Tel1'];
$Tel2= $_POST['Tel2'];

// Envoyons maintenant ses infos dans la bdd
$requete = "INSERT INTO `formulaire` (`id`, `nom`, `prenom`, `cnib`, `tel1`, `tel2`, `lun`, `mar`, `mer`, `jeu`, `ven`, `sam`, `dim`)
              VALUES(NULL,'$Nom','$Prenom','$CNIB','$Tel1','$Tel2','0','0','0','0','0','0','0');"; // Les "names" dans le formulaire
 $resultat= $bdd-> exec($requete);
if($resultat==1) { echo'le journalier a bien été enregistrer';
}else {
echo ' ohlala ...problème';

 } // Le code php se termine ici. a present mettons un boutton pour repartir a la page formulaire

 ?> <br/>
 
 
 <!DOCTYPE html>
<html>
<body>
  <a href="formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a>
</body>
</html>

Une image de la page insertion:
1k0.jpg

04 - La page affiche

<!DOCTYPE html>

<html>
<head>
  <title>affiche</title>
 
</head>

<body>

 
<a href="Formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a>

<table>
    <thead>
        <th>Nom </th>
        <th>Prenom </th>
    <th>CNIB </th>
    <th>Lun </th>
    <th>Mar </th>
    <th>Mer </th>
    <th>Jeu </th>
    <th>Ven </th>
    <th>Sam </th>
    <th>Dim </th>
    <th>Salaire hebdomadaire</th>
      </tr>
    </thead>
 
    <body>
  <?php
//tjrs :on commence par inclure le fichier connexion
include('connexion.php');
// écrire la requete de la lecture de la table formulaire
 $reponse = $bdd->query('SELECT * FROM formulaire WHERE YEARWEEK(date)=YEARWEEK(NOW());');
//executer la requête à l'aide de la fonction exec et mettre le resultat dans $resultat
while ($donnees = $reponse->fetch())
//lecture des tiroirs de l'armoire $resultat à l'aide de la fonction foreach
{
// mettre ds une ligne
echo '<th>'.$donnees['nom'].'</th>  <td>'.$donnees['prenom'].'</td>  <td>'.$donnees['cnib'].'</td>  <td>'.$donnees['lun'].'</td>  <td>'.$donnees['mar'].'</td>  <td>'.$donnees['mer'].'</td>  <td>'.$donnees['jeu'].'</td>  <td>'.$donnees['ven'].'</td>  <td>'.$donnees['sam'].'</td>  <td>'.$donnees['dim'].'</td>  </tr>';
}

?>
    </tbody>
  </table>
 

</div><!-- /page -->

</body>


</html>

Une image de la page affiche:
1k0.jpg

05 - La page pointer

<!DOCTYPE html>

<html>
<head>
  <title>affiche</title>
 
</head>

 
<a href="Formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a>

<form action="modifier.php" method="post">
<table>
    <thead>
        <th>Nom </th>
        <th>Prenom </th>
    <th>CNIB </th>
    <th>Lun </th>
    <th>Mar </th>
    <th>Mer </th>
    <th>Jeu </th>
    <th>Ven </th>
    <th>Sam </th>
    <th>Dim </th>
      </tr>
    </thead>
 
    <body>
  <?php
//tjrs :on commence par inclure le fichier connexion
include('connexion.php');
// écrire la requete de la lecture de la table formulaire
 $reponse = $bdd->query('SELECT * FROM formulaire WHERE YEARWEEK(date)=YEARWEEK(NOW());');
//executer la requête à l'aide de la fonction exec et mettre le resultat dans $resultat
while ($donnees = $reponse->fetch())
//lecture des tiroirs de l'armoire $resultat à l'aide de la fonction foreach
{
// mettre ds une ligne
echo '<th>'.$donnees['nom'].'</th>  <td>'.$donnees['prenom'].'</td>  <td>'.$donnees['cnib'].'</td>  <td>'.$Lun='<SELECT name="lun" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>  
                                                  <td>'.$Mar='<SELECT name="mar" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Mer='<SELECT name="mer" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Jeu='<SELECT name="jeu" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Ven='<SELECT name="ven" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Sam='<SELECT name="sam" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                  <td>'.$Dim='<SELECT name="dim" size="0.3"><OPTION>0<OPTION>2000<OPTION>3000</SELECT>'.'</td>
                                                 
                                                  </tr>';
}

?>

    </body>
  </table>
  <input type="submit" name="Bouton" value="Pointer">
  </form>
 

</div><!-- /page -->

</body>


</html>

Une image de la page pointer:
1k0.jpg

06 - La page modifier (la fameuse page problématique big_smile)

<?php
//connexion
include('connexion.php');

if(isset($_POST['Bouton']))
   // Réecriture des variables
   $_POST['lun'];
   $_POST['mar'];
   $_POST['mer'];
   $_POST['jeu'];
   $_POST['ven'];
   $_POST['sam'];
   $_POST['dim'];
   
   // lancement de la requête de modification d'enregistrement
   $requete='UPDATE formulaire SET
   id="",
   nom="",
   prenom="",
   cnib="",
   tel1="",
   tel2="",
   date="",
   lun="'.$_POST['Lun'].'",
   mar="'.$_POST['Mar'].'",
   mer="'.$_POST['Mer'].'",
   jeu="'.$_POST['Jeu'].'",
   ven="'.$_POST['Ven'].'",
   sam="'.$_POST['Sam'].'",
   dim="'.$_POST['Dim'].'" ';

$resultat= $bdd-> exec($requete);
if($resultat==1) { echo'Pointage effectuer';
}else {
echo ' ohlala ...problème';
}

?>

07 - Une image du message d'erreur:
1k0.jpg

Pour finir je signale que absolument tout marche là maintenant sauf cette dernière étape pour modifier les données de la bdd. Merci de m'aider!

Dernière modification par filabala321 (15-04-2019 12:35:01)

Hors ligne

#9 15-04-2019 14:50:22

tof73
Membre
Inscription : 21-12-2014
Messages : 149
Site Web

Re : Envoi d'un formulaire dans une base de données

$_POST['lun'];
   $_POST['mar'];
   $_POST['mer'];
   $_POST['jeu'];
   $_POST['ven'];
   $_POST['sam'];
   $_POST['dim'];
cela ne sert à rien

<SELECT name="lun" size="0.3">
lun="'.$_POST['Lun'].'",
le message d'erreur est normal vu qu'il n'y a pas de champ avec Lun comme nom.

pour pouvoir faire un update d'un enregistrement de la table, il faut que le formulaire passe l'id, souvent dans un input hidden. là, le champ id vaut ''.

Hors ligne

#10 15-04-2019 16:10:17

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Re : Envoi d'un formulaire dans une base de données

Merci bien @tof73. Je doutais un peu également quant-à la nécessité des $_POST[' '];

Si je te comprend donc,
1) je retire ses $_POST[' '];
2)Dans le code de "pointer.php" il me faut définir des champs qui correspondraient a mes cases à sélectionné et qui par la même occasion devraient avoir pour nom (name=) les dénomination correspondantes a mes colonnes lun, mar,mer etc dans ma bdd.

pour la dernière partie de ton commentaire j'avoue ne pas très bien suivre mais je vais de ce pas check comme disent certains.

Hors ligne

#11 17-04-2019 17:28:18

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Re : Envoi d'un formulaire dans une base de données

Bonjour, merci pour l'aide que vous m'avez apporter. je progresse très bien dans mon projet. J'ai finalement réussi à "Update" ma bdd. Il s'avérait effectivement que le problème venait de la définition de mes variables. après correction voici ce que j'obtiens comme code:

<?php
//connexion
include('connexion.php');

if(isset($_POST['Bouton']))
{ // recuperons à présent les infos entrees dans le formulaire
  $lun= $_POST['lun'];
  $mar= $_POST['mar'];
  $mer= $_POST['mer'];
  $jeu= $_POST['jeu'];
  $ven= $_POST['ven'];
  $sam= $_POST['sam'];
  $dim= $_POST['dim'];
   // lancement de la requête de modification d'enregistrement
   $requete="UPDATE formulaire SET
   lun=".$lun.",
   mar=".$mar.",
   mer=".$mer.",
   jeu=".$jeu.",
   ven=".$ven.",
   sam=".$sam.",
   dim=".$dim."; ";
}

$resultat= $bdd-> exec($requete);
echo $requete;
if($resultat==1){ echo'Pointage effectuer';}
else{echo ' ohlala ...problème';}

?>

Un aperçu du code:
1k0.jpg

Cependant je rencontre de nouvelles difficultés et j'espère que vous m'aidiez toujours comme jusqu'à présent.

En effet: je ne peut pointer que le dernier inscrit de ma bdd, et lorsque je pointe celui-ci pour un jour donné, tous les autres jours de la semaine prennent systématiquement la valeur ''0''. Pire, lorsque je pointe ce dernier, tous les autres inscrits (toutes les lignes de ma table) sont aussi pointer pour ce jour.
Voici un aperçu de ma bdd après que j'ai pointer la valeur ''3000'' à l'inscrit nommé ''mardi impricolor'' pour le jour de Lundi.
1k0.jpg

Je suis dérouté et j'ai vraiment besoin d'aide. Merci d'avance!

Hors ligne

#12 17-04-2019 19:58:56

tof73
Membre
Inscription : 21-12-2014
Messages : 149
Site Web

Re : Envoi d'un formulaire dans une base de données

qu'est-ce qu'affiche le echo $requete; ?

je disais :
"pour pouvoir faire un update d'un enregistrement de la table, il faut que le formulaire passe l'id, souvent dans un input hidden. là, le champ id vaut ''."
je développe :
"pour pouvoir faire un update d'un enregistrement de la table (et d'un seul), il faut que le formulaire passe l'id, souvent dans un input hidden. là, le champ id vaut ''."

Hors ligne

#13 18-04-2019 19:48:59

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Re : Envoi d'un formulaire dans une base de données

echo $requete etait sense m'aide a debugger le problème qu'il mais visible ce n’était pas le cas. donc je le retire.

Maintenant pour ce qui est de la récupération de l'id, j'ai essayer de progresser un peu. là maintenant je suis arriver a Ecrire un code pour update une ligne spécifique de la table. ça passe parfaitement dans SQL.
un apercu du code et du resultat dans mysql :
https://myalbum.com/photo/83QXtof1Tt8J/1k0.jpg

par contre je peine vraiment a trouver la formule pour récupérer le id dans le formulaire et l'utiliser pour la requête
recuperation de l'id dans une variable: https://myalbum.com/photo/Q1GSWBdV3HLe/1k0.jpg

Soumission de la raquette utilisant le id passer par le formulaire: https://myalbum.com/photo/9l6EjLlfkwoo/1k0.jpg

A partir de là j'ai cette erreur: ( ! ) Parse error: syntax error, unexpected '$id' (T_VARIABLE) in C:\wamp64\www\projetcobaye\modifier.php on line 23

Et la fameuse ligne 23: dim=".$dim." WHERE id="$id" ";
Apercu du code en entier: https://myalbum.com/photo/9l6EjLlfkwoo/1k0.jpg

Merci de m'aider!

Hors ligne

#14 18-04-2019 23:03:26

tof73
Membre
Inscription : 21-12-2014
Messages : 149
Site Web

Re : Envoi d'un formulaire dans une base de données

pour la ligne 23, https://www.php.net/manual/fr/language.types.string.php

pour débuger, il faut aussi regarder le résultat de son script php dans le code html généré. tant que le champ hidden n'a pas ce qui est attendu dans le champ value, c'est inutile de continuer.

Hors ligne

#15 19-04-2019 04:07:06

KOogar
Membre
Lieu : PHP
Inscription : 09-05-2009
Messages : 32
Site Web

Re : Envoi d'un formulaire dans une base de données

Parse correctement tes variables :
"dim=".$dim." WHERE id='".$id."' ";

ensuite regarde si tu récupères toutes tes valeurs de la global POST

print_r($_POST); // affiche le tableau POST
die(); // stop le script

aussi
tu renvoies pas l'id dans ton script, faut mettre un echo wink
<input type="hidden" name="postId" value="<?php echo $id;?>">

Hors ligne

#16 24-04-2019 09:42:08

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Re : Envoi d'un formulaire dans une base de données

Vraiment merci a @tof73 et @KOogar pour l'aide. j'avance a grand pas grâce a vous. Grace a vos remarques et suggestions de recherche, je suis arrivé a faire les ''UPDATE'' parfaitement. Il m'a fallu beaucoup fouiné (au point de revoir tout le code mdr!) mais j'y suis arriver. je vous met les codes des pages pointer.php et modifier.php ça pourrait aider d'autres.

Pointer.php

<!DOCTYPE html>
<html>
    <head>
        <title>affiche</title>
    </head>
    <body>
        <a href="Formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a>

        <form action="modifier.php" method="post">
            <table>
                <tr>
                    <th>Nom </th>
                    <th>Prenom </th>
                    <th>CNIB </th>
                    <th>Lun </th>
                    <th>Mar </th>
                    <th>Mer </th>
                    <th>Jeu </th>
                    <th>Ven </th>
                    <th>Sam </th>
                    <th>Dim </th>
                </tr>
               
                <?php
                    include('connexion.php');
                    $reponse = $bdd->query('SELECT * FROM formulaire WHERE YEARWEEK(date)=YEARWEEK(NOW());');
                ?>

                <?php while ($donnees = $reponse->fetch()) : ?>
                    <tr>
                        <td>
                            <?php echo $donnees['nom'] ?>
                        </td>
                        <td>
                            <?php echo $donnees['prenom'] ?>
                        </td>
                        <td>
                            <?php echo $donnees['cnib'] ?>
                        </td>
                        <td>
                            <select name="lun[]" size="0.3">
                                <option <?php if ($donnees['lun'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['lun'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['lun'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="mar[]" size="0.3">
                                <option <?php if ($donnees['mar'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['mar'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['mar'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>
                        <td>
                            <select name="mer[]" size="0.3">
                                <option <?php if ($donnees['mer'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['mer'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['mer'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="jeu[]" size="0.3">
                                <option <?php if ($donnees['jeu'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['jeu'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['jeu'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="ven[]" size="0.3">
                                <option <?php if ($donnees['ven'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['ven'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['ven'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="sam[]" size="0.3">
                                <option <?php if ($donnees['sam'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['sam'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['sam'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  
                        <td>
                            <select name="dim[]" size="0.3">
                                <option <?php if ($donnees['dim'] == 0) echo 'selected' ?> >
                                    0
                                </option>
                                <option <?php if ($donnees['dim'] == 2000) echo 'selected' ?>>
                                    2000
                                </option>
                                <option <?php if ($donnees['dim'] == 3000) echo 'selected' ?>>
                                    3000
                                </option>
                            </select>
                        </td>  

                    </tr>
                    <input type="hidden" name="custId[]" value="<?php echo $donnees['id'] ?>">
                <?php endwhile ?>
            </table>
            <input type="submit" name="Bouton" value="Pointer">
        </form>

    </body>
</html>



modifier.php

<?php
    include('connexion.php');
    if(isset($_POST['Bouton'])) {
        for($i = 0 ; $i < count($_POST['custId']); $i++) {
            $lun = $_POST['lun'][$i];
            $mar = $_POST['mar'][$i];
            $mer = $_POST['mer'][$i];
            $jeu = $_POST['jeu'][$i];
            $ven = $_POST['ven'][$i];
            $sam = $_POST['sam'][$i];
            $dim = $_POST['dim'][$i];
            $id = $_POST['custId'][$i];
            $requete = 'UPDATE formulaire SET '
            .'lun='.$lun
            .',mar='.$mar
            .',mer='.$mer
            .',jeu='.$jeu
            .',ven='.$ven
            .',sam='.$sam
            .',dim='.$dim . ' WHERE id = ' . $id;
            try {
                $bdd->exec($requete);
            }

            catch(Exception $ex) {
                die('Une erreur s\'est produite : ' . $e->getMessage());
            }
        }

        echo '<b>Pointage éffectuer!<b>';
    }
  // fermons la balise php et repartons a la ligne.
?> </br>
 
  <label>
    <a href="pointer.php"> <input type="button" value="Pointer"> </a> </br>
    <a href="affiche.php"> <input type="button" value="Voir le pointage à ce jour"> </a> </br>
    <a href="Formulaire-journalier.php"> <input type="button" value="Inscrir un nouveau journalier"> </a> </br>
  <label/>

A cet stade le ''moteur'' principal marche très bien! Mais je vais une fois de plus demander de l'aide pour cette fois finir avec la structure principale.
En effet dans ma page affiche.php qui affiche l'état du pointage des inscrits, vous avez due remarquer qu'il y'a une colonne nommée ''Salaire hebdomadaire'' qui est restée vide. Il est sensé me donner la somme des  pointages de chaque inscrit. j'ai écrit un bout de code a cet effet et je rencontre un problème de conversion. je m'y prend mal peut être et je vous demande un coup de pouce pour cela.

voici le code revu: https://myalbum.com/photo/Y8taR5UOKPtX/1k0.jpg
Et là le message d'erreur: https://myalbum.com/photo/2DcYPOe4tP5W/1k0.jpg

Merci d'avance pour ce énième coup de main!

Dernière modification par filabala321 (24-04-2019 10:04:42)

Hors ligne

#17 24-04-2019 12:27:55

tof73
Membre
Inscription : 21-12-2014
Messages : 149
Site Web

Re : Envoi d'un formulaire dans une base de données

comment avez-vous fait pour accéder aux différents champs du résultat de la requête mise dans $reponse ?

à noter que cette seconde requête sql ne sert à rien, il suffit d'additionner les champs de la première requête.

Hors ligne

#18 25-04-2019 16:19:50

KOogar
Membre
Lieu : PHP
Inscription : 09-05-2009
Messages : 32
Site Web

Re : Envoi d'un formulaire dans une base de données

$salaire est un objet donc si tu fais un echo dessus ca fait meuhhh

Solution :

$donnee_salaire = $salaire->fetch() ;
echo $donnee_salaire['Profit'];

Hors ligne

#19 29-04-2019 13:58:24

filabala321
Membre
Inscription : 02-12-2017
Messages : 12

Re : Envoi d'un formulaire dans une base de données

Merci! j'ai compris le fond du problème avec vos remarque; je met a présent les portions de code concernées. Encore merci a tous, mon projet est a présent abouti. je suis présentement sur quelques "artifices" complémentaires. Je declare donc ce sujet clos.

$reponse = $bdd->query('SELECT id, nom, prenom, cnib, lun, mar, mer, jeu, ven, sam, dim, SUM(lun+mar+mer+jeu+ven+sam+dim) as profit FROM formulaire WHERE YEARWEEK(date)=YEARWEEK(NOW()) group by id;');
<td>'.$donnees['profit'].'</td>

Hors ligne

Pied de page des forums