Registre de présence(boucle dans postgrsql)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Registre de présence(boucle dans postgrsql)

par Maitrepylos » 08 nov. 2005, 17:37

Je jette un oeil à ça.

SUPER MERCI DE TON AIDE.

BONNE CHANCE A TOI

par Cyrano » 08 nov. 2005, 15:56

Proposition d'optimisation :
<?php
session_start();
include("Base/pgConnect.php");
include("Passwd/PasswdAnnuaire.php");

if ($_POST['DateAnnee'])
{
    $_SESSION['DateMois']  = $_POST['DateMois'];
    $_SESSION['DateAnnee'] = $_POST['DateAnnee'];
    $_SESSION['DatePlus']++;
}
$_SESSION['idParticipant']=$_POST['Nom'];
if ($_POST['Heure'])
{
    $heure = isset($_POST['Heure']) ? $_POST['Heure'] : null;
    $date1 = isset($_POST['Date1']) ? $_POST['Date1'] : null;
    if(isset($heure))
    {
        //parcours du 1er tableau en mettant les index dans $index et les valeurs
        // dans $valeur
        foreach ($_POST['Date1'] as $index => $value)
        {
            //Récupération de la valeur du tableau 2 dont l'index est celui du tableau 1
            $value2 = $_POST['Heure'][$index];
            //Construction de la requete de mise à jour ou de update function créer grâce au langage pl/pgsql
            $sql = "SELECT insertupdate(". $value2 .",'". $value ."', ". $_SESSION['idformateur'] .", ". $_POST['NomRetour'] .")";
            pg_query($Connect,$sql) or die ('Erreur dans le shéma');
            //insertion ou modification du registre
        }
?>
<p>Insertion dans le registre OK</p>
<meta http-equiv="refresh" content="2;url=index.php?section=Registre" />
<?php
    }
}
else
{
?>
<p>Bonjour <b><?php echo(strtoupper($_SESSION['UserName'])); ?></b>, bienvenu(e) dans le registre pour le mois de <?php echo($_SESSION['DateMois']); ?> de l'année <?php echo($_SESSION['DateAnnee']); ?><p>
<?php
    /**fonction définnissant le mois choissi par le menuregistre.php */
    $num = cal_days_in_month(CAL_JULIAN, date($_SESSION['DateMois']), date($_SESSION['DateAnnee']));
?>
<form id="formulaire_1" action="index.php?section=Registre" method="post">
  <table border="1">
    <tr>
      <td rowspan="2"><p>Choix du participant</p>
        <select name="Nom" onchange="document.forms['formulaire_1'].submit();">
          <option value="" selected></option>
<?php
    /** fonction créant le menu déroulant des personne inscrite dans l'association*/
    $sql = "SELECT idparticipant,parnom, parprenom FROM participant ORDER BY parnom ASC ";
    $result = pg_query($Connect, $sql);
    while ($row = pg_fetch_array($result))
    {
        $id = $row["idparticipant"];
        $valeur = $row["parnom"] ." ". $row["parprenom"];
?>
          <option value="<?php echo($id); ?>"><?php echo($valeur); ?></option>
<?php
    }
?>
        </select>
      </td>
    </tr>
  </table>
  <table border="1">
  </form>
  <tr>
    <td><p>Nom du Participant</td>
<?php
    /**ici on crée autant de cases que dans la mois numeroter de 1 à la fin du mois*/
    $i=1;
    for($s = 0; $s < $num; $s++)
    {
?>
    <td><?php echo($i); ?></td>
<?php
    $i++;
    }
?>
  </tr>
  <tr>
    <form id="info" action="index.php?section=Registre" method="POST">
<?php
    if (isset($_SESSION['idParticipant']))
    {
        /***
        Ici on récupère le nom et le prénom du participant suite au javascript du menu déroulant
        afin de l'afficher dans le <td> Nom du participant
        */
        $sql2 = "SELECT idparticipant,parnom, parprenom ".
                "FROM participant ".
                "WHERE participant.idparticipant= ".$_SESSION['idParticipant']."";
        $resu1 = pg_query($Connect, $sql2);
        $affiche = pg_fetch_array($resu1);
    
        $valeur1 = $affiche["parnom"] ." ". $affiche["parprenom"];
    
        /**ici on crée le même nombres de case mais avec récupération des valeurs inscrite dans la base de données
        et on crée un champs caché avec les dates du mois*/
    
        $recupsql = "SELECT * ".
                    "FROM registre ".
                    "WHERE regjour  >='". $_SESSION['DateAnnee'] ."-". $_SESSION['DateMois'] ."-01' ".
                    "AND regjour  <'". $_SESSION['DateAnnee'] ."-". $_SESSION['DatePlus'] ."-01' ".
                    "AND registre.idparticipant=". $_SESSION['idParticipant'] ." ".
                    "AND registre.idlogin = ". $_SESSION['idformateur'];
        $soluce = pg_query($recupsql);
        $row = pg_numrows($soluce);
    }
?>
      <td>
        <input  name="" value="<?php echo($valeur1); ?> ">
        <input type="hidden"  name="NomRetour" value="<?php echo($_SESSION['idParticipant']); ?>">
      </td>
<?php
    if ($row!=0) 
    {
        while ($row =pg_fetch_array($soluce))
        {
?>
      <td><input maxlength="1" size="1" name="Heure[]" value="<?php echo($row['regheure']); ?>"></td>
<?php
        }
    }
    else
    {
        for ($v = 1; $v < $num+1; $v++)
        {
?>
      <td><input maxlength="1" size="1" name="Heure[]" value="0"></td>
<?php
        }
    }
?>
    </tr>
  </table>
<?PHP
    for ($v = 1; $v < $num+1; $v++)
    {
?>
  <input type="hidden" id="date1" name="Date1[]" value="<?php echo (date($_SESSION['DateAnnee'].'-'.$_SESSION['DateMois']).'-'.$v)?> ">
<?PHP
    }
?>
  <input type="submit" name="envoi" value="Enregistrer" />
</form>
<?php
}
?>
Je te signale quand même un problème potentiel :
Tu définis $valeur1 (ligne 98 du code ci-dessus : si jamais la condition du if (ligne 86) retourne false, $valeur1 ne sera pas définie et tu auras une erreur ligne 114 "undefined variable valeur1..."

Solution: l'accolade fermante ligne 114 doit être décalée après celle de la ligne 135.

Bon code.

par Maitrepylos » 08 nov. 2005, 15:14

Yes, j'ai enfin terminé.

Merci Cyrano.

Si quelqu'un, sait comment optimiser mon code je suis preneur
<?php
session_start();
include("Base/pgConnect.php");
include("Passwd/PasswdAnnuaire.php");

if ($_POST['DateAnnee']) {
	

$_SESSION['DateMois'] = $_POST['DateMois'];
$_SESSION['DateAnnee'] = $_POST['DateAnnee'];
$_SESSION['DatePlus'] = $_SESSION['DateMois'] + 1;

}

$_SESSION['idParticipant']=$_POST['Nom'];



if ($_POST['Heure']) {
		

$heure = isset($_POST['Heure']) ? $_POST['Heure'] : null;
$date1 = isset($_POST['Date1']) ? $_POST['Date1'] : null;
 
	if(isset($heure))
		{
	//parcours du 1er tableau en mettant les index dans $index et les valeurs
// dans $valeur
foreach ($_POST['Date1'] as $index=>$value) {
    //Récupération de la valeur du tableau 2 dont l'index est celui du tableau 1
    $value2 = $_POST['Heure'][$index];
    //Construction de la requete de mise à jour ou de update function créer grâce au langage pl/pgsql
    $sql = "SELECT insertupdate($value2,'".$value."',$_SESSION[idformateur],$_POST[NomRetour])";
    pg_query($Connect,$sql) or die ('Erreur dans le shéma');
     //insertion ou modification du registre  
    
						}
		echo "<p>Insertion dans le registre OK</p>";
    echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php?section=Registre\" />";			
		}
}
else {
	
	echo "<p>Bonjour <b>".strtoupper($_SESSION['UserName'])."</B> bienvenu(e) dans le registre pour le mois de " .$_SESSION['DateMois']." de l'année ".$_SESSION['DateAnnee']."<p>";
    /**fonction définnissant le mois choissi par le menuregistre.php */
	$num = cal_days_in_month(CAL_JULIAN, date($_SESSION['DateMois']), date($_SESSION['DateAnnee']));
?>
<form id="formulaire_1" action="index.php?section=Registre" method="post">

  <table border="1">
    <tr>
      <td rowspan="2"><p>Choix du participant</p>
        <select name="Nom" onchange="document.forms['formulaire_1'].submit();" >
        <option value="" selected </option>
<?php
/** fonction créant le menu déroulant des personne inscrite dans l'association*/
    $sql = "SELECT idparticipant,parnom, parprenom FROM participant ORDER BY parnom ASC ";
    $result = pg_query($Connect, $sql);
    while ($row = pg_fetch_array($result))
    {
        $id = $row["idparticipant"];
        $valeur = $row["parnom"] ." ". $row["parprenom"];
?>
          <option value="<?php echo($id); ?>"><?php echo($valeur); ?></option>
<?php
    }
?>
        </select>
      </td>
      </tr>
      </TABLE>
      <TABLE border="1">
      </FORM>
      <tr>
      <td><P>Nom du Participant</td>
<?php
/**ici on crée autant de cases que dans la mois numeroter de 1 à la fin du mois*/
    $i=1;
    for($s = 0; $s < $num; $s++)
    {
?>
      <td><?php echo($i); ?></td>
<?php
        $i++;
    }
?>
    </tr>
    <tr>

 <form id="info" action="index.php?section=Registre" method="POST">
    
<?php
if (isset($_SESSION['idParticipant'])) {
	

/***
Ici on récupère le nom et le prénom du participant suite au javascript du menu déroulant
afin de l'afficher dans le <td> Nom du participant
*/
$sql2 = "SELECT idparticipant,parnom, parprenom 
		FROM participant 
		WHERE participant.idparticipant= $_SESSION[idParticipant]";
$resu1 = pg_query($Connect, $sql2);
$affiche = pg_fetch_array($resu1);

$valeur1 = $affiche["parnom"] ." ". $affiche["parprenom"];

/**ici on crée le même nombres de case mais avec récupération des valeurs inscrite dans la base de données
et on crée un champs caché avec les dates du mois*/

$recupsql = "SELECT * FROM registre WHERE regjour  >='$_SESSION[DateAnnee]-$_SESSION[DateMois]-01' AND regjour  <'$_SESSION[DateAnnee]-$_SESSION[DatePlus]-01'
AND registre.idparticipant=$_SESSION[idParticipant]
AND registre.idlogin = $_SESSION[idformateur]";
$soluce = pg_query($recupsql);
$row = pg_numrows($soluce);
}

if ($row!=0) {
	

echo "<td><input  name=\"\" value=\"$valeur1\"></td>";
echo "<INPUT type=\"hidden\"  name=\"NomRetour\" value=\"$_SESSION[idParticipant]\">";	

while ($row =pg_fetch_array($soluce)){
	

	echo "<td><input maxlength=\"1\" size=\"1\" name=\"Heure[]\" value=\"$row[regheure]\"></td>";

}
}
else {
	echo "<td><input  name=\"\" value=\"$valeur1\"></td>";
	echo "<INPUT type=\"hidden\"  name=\"NomRetour\" value=\"$_SESSION[idParticipant]\">";	
	?>
	
	<?PHP
for ($v = 1; $v < $num+1; $v++)
    {
?>
      <td><input maxlength="1" size="1" name="Heure[]" value="0"></td>
    
<?php
    }
}
?>
    </tr>
  </table>
  
<?PHP
for ($v = 1; $v < $num+1; $v++)
    {
?>
 <INPUT type="hidden" id="date1" name="Date1[]" value="<?php echo (date($_SESSION['DateAnnee'].'-'.$_SESSION['DateMois']).'-'.$v)?> ">
<?PHP
    }
?>
  
 <input type="submit" name="envoi" value="Enregistrer" />
</form>
<?php
}
?>
encore merci

par Maitrepylos » 07 nov. 2005, 11:26

J'approche du but.

Voila j'ai bien tous ce qu'il me faut avec le code suivant.

J'arrive à générer mon menu déroulant avec les champs correspondant et il insère dans la base de données les bons éléments grâce à une fonction créer dans PostgreSQL, et le problème de tableaux régler dans un autre post.

Voici le code
<?php
session_start();
include("Base/pgConnect.php");
//include("Passwd/PasswdAnnuaire.php");

if ($_POST['DateAnnee']) {
	

$_SESSION['DateMois'] = $_POST['DateMois'];
$_SESSION['DateAnnee'] = $_POST['DateAnnee'];
$_SESSION['DatePlus'] = $_SESSION['DateMois'] + 1;

}



if ($_POST['Heure']) {
		
	
$heure = isset($_POST['Heure']) ? $_POST['Heure'] : null;
$date1 = isset($_POST['Date1']) ? $_POST['Date1'] : null;
 
	if(isset($heure))
		{
	//parcours du 1er tableau en mettant les index dans $index et les valeurs
// dans $valeur
foreach ($_POST['Date1'] as $index=>$value) {
    //Récupération de la valeur du tableau 2 dont l'index est celui du tableau 1
    $value2 = $_POST['Heure'][$index];
    //Construction de la requete de mise à jour ou de update function créer grâce au langage pl/pgsql
    $sql = "SELECT insertupdate($value2,'".$value."',$_SESSION[idformateur],$_POST[Nom]);";
    pg_query($Connect,$sql) or die ('Erreur dans le shéma');
     //insertion ou modification du registre  
    
						}
		echo "<p>Insertion dans le registre OK</p>";
    echo "<meta http-equiv=\"refresh\" content=\"2;url=index.php?section=Registre\" />";			
		}
}
else {
	
	echo "<p>Bonjour <b>".strtoupper($_SESSION['UserName'])."</B> bienvenu(e) dans le registre pour le mois de " .$_SESSION['DateMois']." de l'année ".$_SESSION['DateAnnee']."<p>";
    /**fonction définnissant le mois choissi par le menuregistre.php */
	$num = cal_days_in_month(CAL_JULIAN, date($_SESSION['DateMois']), date($_SESSION['DateAnnee']));
?>
<form id="form_1" action="index.php?section=Registre" method="POST">
  <table border="1">
    <tr>
      <td rowspan="2">
        <select name="Nom" >
<?php
/** fonction créant le menu déroulant des personne inscrite dans l'association*/
    $sql = "SELECT idparticipant,parnom, parprenom FROM participant ORDER BY parnom ASC ";
    $result = pg_query($Connect, $sql);
    while ($row = pg_fetch_array($result))
    {
        $id = $row["idparticipant"];
        $valeur = $row["parnom"] ." ". $row["parprenom"];
?>
          <option value="<?php echo($id); ?>"><?php echo($valeur); ?></option>
<?php
    }
?>
        </select>
      </td>
<?php
/**ici on crée autant de cases que dans la mois numeroter de 1 à la fin du mois*/
    $i=1;
    for($s = 0; $s < $num; $s++)
    {
?>
      <td><?php echo($i); ?></td>
<?php
        $i++;
    }
?>
    </tr>
    <tr>
<?php
/**ici on crée le même nombres de case mais avec récupération des valeurs inscrite dans la base de données
et on crée un champs caché avec les dates du mois*/
$recupsql = "SELECT * FROM registre WHERE regjour  >='$_SESSION[DateAnnee]-$_SESSION[DateMois]-01' AND regjour  <'$_SESSION[DateAnnee]-$_SESSION[DatePlus]-01'
AND registre.idparticipant=$id
AND registre.idlogin = 1";
$soluce = pg_query($recupsql);
$row = pg_numrows($soluce);


if ($row!=0) {
	

while ($row =pg_fetch_array($soluce)){
	

	echo "<td><input maxlength=\"1\" size=\"1\" name=\"Heure[]\" value=\"$row[regheure]\"></td>";

}
}
else {
for ($v = 1; $v < $num+1; $v++)
    {
?>
      <td><input maxlength="1" size="1" name="Heure[]" value="0"></td>
    
<?php
    }
}
?>
    </tr>
  </table>
  
<?PHP
for ($v = 1; $v < $num+1; $v++)
    {
?>
 <INPUT type="hidden" id="date1" name="Date1[]" value="<?php echo (date($_SESSION['DateAnnee'].'-'.$_SESSION['DateMois']).'-'.$v)?> ">
<?PHP
    }
?>
  
 <input type="submit" name="envoi" value="Enregistrer" />
</form>
<?php
}
?>
Maintenant j'aurais besoin d'un peu d'aide concernant javascript, afin de récupérer les données déja insérer dans la base de données quand je choisit un participant dans le menu déroulant, il faudrais récupérer tous par rapport a ce bout de code
<?php
/** fonction créant le menu déroulant des personne inscrite dans l'association*/
    $sql = "SELECT idparticipant,parnom, parprenom FROM participant ORDER BY parnom ASC ";
    $result = pg_query($Connect, $sql);
    while ($row = pg_fetch_array($result))
    {
        $id = $row["idparticipant"];
        $valeur = $row["parnom"] ." ". $row["parprenom"];
?>
          <option value="<?php echo($id); ?>"><?php echo($valeur); ?></option>
<?php
    }
?>
        </select>
      </td>
<?php
/**ici on crée autant de cases que dans la mois numeroter de 1 à la fin du mois*/
    $i=1;
    for($s = 0; $s < $num; $s++)
    {
?>
      <td><?php echo($i); ?></td>
<?php
        $i++;
    }
?>
    </tr>
    <tr>
<?php
/**ici on crée le même nombres de case mais avec récupération des valeurs inscrite dans la base de données
et on crée un champs caché avec les dates du mois*/
$recupsql = "SELECT * FROM registre WHERE regjour  >='$_SESSION[DateAnnee]-$_SESSION[DateMois]-01' AND regjour  <'$_SESSION[DateAnnee]-$_SESSION[DatePlus]-01'
AND registre.idparticipant=$id
AND registre.idlogin = 1";
$soluce = pg_query($recupsql);
$row = pg_numrows($soluce);


if ($row!=0) {
    

while ($row =pg_fetch_array($soluce)){
    

    echo "<td><input maxlength=\"1\" size=\"1\" name=\"Heure[]\" value=\"$row[regheure]\"></td>";

}
}
else {
for ($v = 1; $v < $num+1; $v++)
    {
?> 
Merci

par Maitrepylos » 30 sept. 2005, 14:58

Bonjour,

Je crois que je viens bêtement d'avancer d'un grand pas, avec un input hiden j'obtient une variables avec la valeurs voulues. comme ceci.


<?php
include("../Ekoke/Base/pgConnect.php");
$num = cal_days_in_month(CAL_JULIAN, date('m'), date('Y'));

$heure = isset($_POST['Heure']) ? $_POST['Heure'] : null;
$date1 = isset($_POST['Date1']) ? $_POST['Date1'] : null;
 
if(isset($heure))
{
	
?>
<pre>
<?php
    var_dump($heure);
    var_dump($date1);
    
?>
</pre>
<?PHP
}
?>
<form id="form_1" action="essai4.php" method="POST">
  <table border="1">
    <tr>
      <td rowspan="2">
        <select name="Nom" >
<?php
    $sql = "SELECT idparticipant,parnom, parprenom FROM participant ORDER BY parnom ASC ";
    $result = pg_query($Connect, $sql);
    while ($row = pg_fetch_array($result))
    {
        $id = $row["idparticipant"];
        $valeur = $row["parnom"] ." ". $row["parprenom"];
?>
          <option value="<?php echo($id); ?>"><?php echo($valeur); ?></option>
<?php
    }
?>
        </select>
      </td>
<?php
    $i=1;
    for($s = 0; $s < $num; $s++)
    {
?>
      <td><?php echo($i); ?></td>
<?php
        $i++;
    }
?>
    </tr>
    <tr>
<?php
    for ($v = 1; $v < $num+1; $v++)
    {
?>
      <td><input maxlength="1" size="1" name="Heure[]" value=""></td>
      <INPUT type="hidden" id="date1" name="Date1[]" value="<?php echo (date('Y-m').'-'.$v)?> ">
<?php
    }

?>
    </tr>
  </table>
  <input type="submit" name="envoi" value="Enregistrer" />
</form>
<?php

?>
Maintenant que j'ai toutes les données, puis je faire un foreach avec 2 tableaux dynamique, afin de faire mon code sql?

Merci de votre aide

par Maitrepylos » 21 sept. 2005, 14:01

ok je reprend depuis le début

j'ai une bdd postgresql dont voici le mcd

Image

Ce que je voudrais c'est un formulaire où on peux inscrire les heures de stagiaire présté.

Les heures seront toujours soit 3 soit 6 donc pas besoin de champs timestamp un integer suffit.

Il faut également que je puisse mettre la date que les heures on été présté.

je dois également indiqué chez quel formateur c'est heures ont été présté.

D'aprés le dernier formulaires que tu me proposes, on sait déja :

Quel formateur : puisque il se connecteras via un formulaires et donc je récupère son id.

Quel participants puisque via le menu déroulant on récupère le id.

il reste a récupérer les heures que le formateur inscriras dans le formulaire et a indiquer la date que c'est heures on été réalisé.

on à donc un input qui est reproduis autant de fois que de jours dans le mois en cours, et qui sert de base pour le remplir.

question comment mettre tous ça dans la table "heuresstagiaire".

Merci de ton aide précieuse

par Cyrano » 21 sept. 2005, 13:18

Je ne saisis pas, ce que je peux dire en revanche, c'est qu'un champ <input> dépourvu d'attribut value n'enverra aucune valeur. Donc à la réception, tu n'as aucune chance de récupérer quoi que ce soit.

par Maitrepylos » 21 sept. 2005, 11:53

Attends je crois qu'on se méprend.

Ici on est en train de construire le formulaire qui va me permettre d'encoder les heures présté par mes participants et puis l'insérer dans le bdd.

J'ai l'impression que tu es déja à l'étape où on doit récupérer les données dans le sql.

Donc on construit le formulaire d'insertion.

d'accord avec moi :-$

par Cyrano » 21 sept. 2005, 11:09

Là effectivement, je comprends d'autant mieux que tu ne récupères rien: regarde bien le champ input heure[] : tu n'as mis aucun attribut "value" : donc rien n'est envoyé. Ça devrait ressembler à ça:
<?php
include("../Ekoke/Base/pgConnect.php");
$num = cal_days_in_month(CAL_JULIAN, date('m'), date('Y'));

$heure = isset($_POST['Heure']) ? $_POST['Heure'] : null;

/*ici il faudrait mettre le code sql
je dois récupérer :

l'id participant ok
l'id formateur ok
les heures préstée ceux qu'on insère dasn le champ heure
à chaque champs 'heure' une date Y/m/d*/
if(isset($heure))
{
?>
<pre>
<?php
    var_dump($heure);
?>
</pre>
<form id="form_1" action="essai3.php" method="POST">
  <table border="1">
    <tr>
      <td rowspan="2">
        <select name="Nom" >
<?php
    $sql = "SELECT idparticipant,parnom, parprenom FROM participant ORDER BY parnom ASC ";
    $result = pg_query($Connect, $sql);
    while ($row = pg_fetch_array($result))
    {
        $id = $row["idparticipant"];
        $valeur = $row["parnom"] ." ". $row["parprenom"];
?>
          <option value="<?php echo($id); ?>"><?php echo($valeur); ?></option>
<?php
    }
?>
        </select>
      </td>
<?php
    $i=1;
    for($s = 0; $s < $num; $s++)
    {
?>
      <td><?php echo($i); ?></td>
<?php
        $i++;
    }
?>
    </tr>
    <tr>
<?php
    for ($v = 0; $v < $num; $v++)
    {
?>
      <td><input maxlength="1" size="1" name="Heure[]" value="<?php echo($heure[$v]); ?>"></td>
<?php
    }

?>
    </tr>
  </table>
  <input type="submit" name="envoi" value="Enregistrer" />
</form>
<?php
}
?>
Note que j'ai modifié le début et le formulaire n'apparaîtra que si une valeur a été envoyée avec $_POST['heure'].

par Maitrepylos » 21 sept. 2005, 10:43

Voila
<?php
include("../Ekoke/Base/pgConnect.php");
$num = cal_days_in_month(CAL_JULIAN, date('m'), date('Y'));


if(isset($_POST['Heure']))
{
    $heure = $_POST['Heure'];
    
  /*ici il faudrait mettre le code sql
  je dois récupérer :

  l'id participant ok
  l'id formateur ok
  les heures préstée ceux qu'on insère dasn le champ heure
  à chaque champs 'heure' une date Y/m/d*/
  
    	
    
} 
?>
<pre>
<?php
var_dump($heure);
?>
</pre>
<form id="form_1" action="essai3.php" method="POST">
  <table border="1">
    <tr>
      <td rowspan="2">
        <select name="Nom" >
<?php
$sql = "SELECT idparticipant,parnom, parprenom FROM participant ORDER BY parnom ASC ";
$result = pg_query($Connect, $sql);
while ($row = pg_fetch_array($result))
{
	$id = $row["idparticipant"];
    $valeur = $row["parnom"] ." ". $row["parprenom"];
?>
          <option value="<?php echo($id); ?>"><?php echo($valeur); ?></option>
<?php
}
?>
        </select>
      </td>
<?php
$i=1;
for($s = 0; $s < $num; $s++)
{
?>
      <td><?php echo($i); ?></td>
<?php
$i= $i+1;
}
?>
    </tr>
    <tr>
<?php
for ($v = 0; $v < $num; $v++)
{
?>
      <td><input maxlength="1" size="1" name="Heure[]"></td>
<?php
}

?>
    </tr>
  </table>
  <input type="submit" name="envoi" value="Enregistrer" />
</form>

par Cyrano » 20 sept. 2005, 16:37

De quoi a donc l'air le formulaire ...? Parce que là, je comprends de moins en moins... :-k

par Maitrepylos » 20 sept. 2005, 15:50

Ben le var dump donne toujours ceci
array(30) {
  [0]=>
  string(1) "1"
  [1]=>
  string(0) ""
  [2]=>
  string(0) ""
  [3]=>
  string(0) ""
  [4]=>
  string(0) ""
  [5]=>
  string(0) ""
  [6]=>
  string(0) ""
  [7]=>
  string(0) ""
  [8]=>
  string(0) ""
  [9]=>
  string(0) ""
  [10]=>
  string(0) ""
  [11]=>
  string(0) ""
  [12]=>
  string(0) ""
  [13]=>
  string(0) ""
je pensais que comme cela j'y serais arriver
if(isset($_POST['Heure']))
{
    $heure = $_POST['Heure'];
    
    $i=0;
    while ($i<$heure[$i]) {
    	$h[$i]=$heure[$i];
    	echo $h;
    	$i++;
    }

    
    	
    
} 
Mais bon je me suis encore planter

par Cyrano » 20 sept. 2005, 14:19

fais ce même var_dump sur $heure (seconde manière) et c'est ce que tu affcheras puisque $heure est un tableau, tandis que $valeur (première manière) est une variable ordinaire (dite scalaire)

par Maitrepylos » 20 sept. 2005, 13:49

D'accord je comprend, tu veux changer le nom de la variable.

Donc maintenant je fais un var dump de la $valeurs et il me met

Code : Tout sélectionner

string(0) ""
, alors que m'attendais plus a ceci
array(30) {
    h[0]=>
    string(1) "1"
    h[1]=>
    string(1) "1"
    h[2]=>
    string(1) "1"
    h[3]=> 

par Cyrano » 20 sept. 2005, 13:13

Bon, ce système de boucle ne fonctionne pas parce que ça génèrerait des variables $0, $1, $2 etc... or une variable PHP ne peut commencer que pas une lettre ou un _ : donc à tester:
if(isset($_POST['Heure']))
{
    foreach($_POST['Heure'] as $var => $valeur)
    {
        $h{$var} = $valeur;
        echo $valeur;
    }
}
ça va créer des variables $h0, $h1, $h2 etc...
C,est comme si on faisait la chose suivante:
if(isset($_POST['Heure']))
{
    $heure = $_POST['Heure']
    $h0 = $heure[0];
    $h1 = $heure[1];
    $h2 = $heure[2];
}
echo("<p>". $h0 ."<br />\n". $h1 ."<br />\n". $h2 ."</p>\n");