array et sauvegarde mysql.
Posté : 02 mai 2012, 09:54
Bonjour, en fait j'ai plusieurs champs dans ma base de donnée, toutes les lignes peuvent contenir un dénominateur commun, par exemple le libellé (il s'agit de scenario, associés à des dates). donc j'ai créé un select qui récupère tous les scenarii , voici par conséquent le code que j'(utilises pour le select:
je les ai déjà nommés en champs de type name="nom" mais le soucis c'est que lors de l'enregistrement vers ma bdd, il n'enregistre que le dernier vu que tous les names portent le meme nom.
car en fait dans la table qui s'affiche grâce au select, j'ai des nombres de jours, et lorsque je les affiches ils incrémentent la date du jour.
on m'a dit d'utiliser un array et de faire une boucle pour l'enregistrement mais je ne sais pas du tout comment procéder.
et par conséquent je ne sais pas également comment les enregistrer. d'avance merci pour votre aide.
<select name="code_s"> <?php
$sql = 'SELECT * FROM scenarii GROUP BY titre';
$result = mysql_query($sql) or die(__LINE__.mysql_error().$sql);
?> <option value="">-- Scénario à l'ouverture -- </option>
<?php
while($donnees2 = mysql_fetch_assoc($result)) {
?>
<option value="<?php
echo $donnees2['code_s'];
?>
"> <?php
echo $donnees2['code_s'];
?> <?php
echo $donnees2['titre'];
?>
</option>
<?php } ?>
</select>
par la suite en validant le select, j'arrives sur uhne page qui reprends tous les éléments de la table qui ont le même dénominateur commun; j'ai donc ce code ci:<table cellpadding="5" cellspacing="5">
<tr><td><strong>CODE SCENARIO</strong></td>
<td><strong>LIBELLE</strong></td>
<td><strong>ACTION</strong></td>
<td><strong>DESCRIPTION</strong></td>
<td><strong>DATE</strong></td>
</tr><form action="<?php if (!isset($_POST['go'])) echo '#'; else echo 'go.php'; ?>" method="post">
<input type="hidden" name="liasse" value="<?php echo $_POST['liasse'] ; ?>" >
<?php
$sql = "SELECT * FROM scenarii where code_s='".mysql_real_escape_string($_POST['code_s'])."'";
$result = mysql_query($sql) or die(__LINE__.mysql_error().$sql);
?>
<?php
while($donnees2 = mysql_fetch_assoc($result)) {
?>
<tr>
<td>
<input name="code_s" type="text" value="<?php
echo $donnees2['code_s'];
?>" size="10"> </td><td> <input name="titre" type="text" value="<?php
echo $donnees2['titre'];
?>" size="45"> </td>
<td> <input name="titre" type="text" value="<?php
echo $donnees2['action'];
?>" size="15"> </td>
<td> <input name="libelle" type="text" value="<?php
echo $donnees2['libelle'];
?>" size="55"></td><td>
<input type="text" value="<?php
if( isSet($_POST['submit']) && $_POST['submit'] == "moins" ){
$today = mktime(0,0,0, date("m"),date("d"),date("Y"));
//le nombre de seconde depuis le 1er janvier 1970 à aujourd hui 00h00. (les 3 premiers 0);
//ensuite pour ajouter xjours jours
$today += (3600 * 24 * ($donnees2['jour'] - $_POST['jours']) );
// 1h * 24 = 1 jour * 20 = 20 jours
//et pour avoir la date correspondante tout simplement
$ladate = date("d-m-Y", $today);
echo $ladate;
}
elseif( isSet($_POST['submit']) && $_POST['submit'] == "plus" ){
$today = mktime(0,0,0, date("m"),date("d"),date("Y"));
//le nombre de seconde depuis le 1er janvier 1970 à aujourd hui 00h00. (les 3 premiers 0);
//ensuite pour ajouter xjours jours
$today += (3600 * 24 * ($donnees2['jour'] + $_POST['jours']) );
// 1h * 24 = 1 jour * 20 = 20 jours
//et pour avoir la date correspondante tout simplement
$ladate = date("d-m-Y", $today);
echo $ladate;
}
else {
$today = mktime(0,0,0, date("m"),date("d"),date("Y"));
//le nombre de seconde depuis le 1er janvier 1970 à aujourd hui 00h00. (les 3 premiers 0);
//ensuite pour ajouter xjours jours
$today += (3600 * 24 * $donnees2['jour'] );
// 1h * 24 = 1 jour * 20 = 20 jours
//et pour avoir la date correspondante tout simplement
$ladate = date("d-m-Y", $today);
echo $ladate;
}
?>
<?php
?>" size="12"></td></tr>
<?php } ?></table>
il faut donc présentement que je renommes mes champs mais comment faire. car j'ai besoin de récupérer en fait tous les enregistrements mais sur diverses lignes, que tout soit déporté vers une autre table.je les ai déjà nommés en champs de type name="nom" mais le soucis c'est que lors de l'enregistrement vers ma bdd, il n'enregistre que le dernier vu que tous les names portent le meme nom.
car en fait dans la table qui s'affiche grâce au select, j'ai des nombres de jours, et lorsque je les affiches ils incrémentent la date du jour.
on m'a dit d'utiliser un array et de faire une boucle pour l'enregistrement mais je ne sais pas du tout comment procéder.
et par conséquent je ne sais pas également comment les enregistrer. d'avance merci pour votre aide.