Probleme enregistrement multiple dans bdd

Résolu/Fermé
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024 - 22 nov. 2022 à 10:49
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024 - 22 nov. 2022 à 15:09

Bonjour.

J'ai un formulaire avec 10 lignes d'enrgistrement.

<form  action="guardar_datos.php" method="post" >
		
		<label id="escondido">id</label><input id="escondido" type="text"  class="formlibro"  name="ID"><br>
		<label>FECHA</label><input type="date"  class="formlibro" style="width:150px;" name="DATE1" value="<?php echo $date->format('Y-m-d');?>">
		<label>TEMP. MIN.</label><input  type="text" class="formlibro" style="width:100px;" name="T_MINI1" />
		<label>TEMP. MAX.</label><input  type="text" class="formlibro" style="width:100px;" name="T_MAXI1" />
		<label>LLUVIA</label><input  type="text" class="formlibro" style="width:100px;"name="LLUVIA1" value=""/>
		<label>NIEVE</label><input  type="radio"  name="NIEVE1" value="NO" checked /><label for="NO">NO</label><input  type="radio"  name="NIEVE1" value="SI"/> <label for="SI">SI</label><br>
		<label id="escondido">SAISON</label><input id="escondido" type="date"  class="formlibro"  name="SAISON1" value="<?php echo $date_saison1->format('Y-m-d');?>"><br>
		<br>
		
		<label>FECHA</label><input type="date"  class="formlibro" style="width:150px;" name="DATE2" value="<?php echo $date1->format('Y-m-d');?>">
		<label>TEMP. MIN.</label><input  type="text" class="formlibro" style="width:100px;" name="T_MINI12" />
		<label>TEMP. MAX.</label><input  type="text" class="formlibro" style="width:100px;" name="T_MAXI12" />
		<label>LLUVIA</label><input  type="text" class="formlibro" style="width:100px;"name="LLUVIA2" value=""/>
		<label>NIEVE</label><input  type="radio"  name="NIEVE2" value="NO" checked /><label for="NO">NO</label><input  type="radio"  name="NIEVE2" value="SI"/> <label for="SI">SI</label><br>
		<label id="escondido">SAISON</label><input id="escondido" type="date"  class="formlibro"  name="SAISON2" value="<?php echo $date_saison1->format('Y-m-d');?>"><br>
		<br>
		
Et ainsi jusqu'a 10
		
		<BR>
		<br>
		<input type="submit"  class="galeria"  value="  ENVIAR  "/>
		
</form>

J'ai fait une boucle "for dans mon fichier de traitement, que voici

for($i=1; $i<4; $i++)
		{
		
	
		//si POST est vide 
		if ( empty($_POST['DATE'.$i] || $_POST['T_MINI'.$i]))
			//|| $_POST['T_MINI'] != "" || $_POST['T_MAXI'] != "" || $_POST['SAISON'] != ""  )
			{
			exit();
			}
			else
			{
		
			// Establecer las variables para los datos que queremos agregar a la base de datos
			$DATE=($_POST['DATE'.$i]);
			$T_MINI=($_POST['T_MINI'.$i]);
			$T_MAXI=($_POST['T_MAXI'.$i]);
			if (!empty($_POST['LLUVIA'.$i])) {$LLUVIA = $_POST['LLUVIA'.$i];}
			$NIEVE=($_POST['NIEVE'.$i]);
			$SAISON=($_POST['SAISON'.$i]);
			
			// Aquí creamos una variable que llama al método prepare() del objeto de la base de datos
			// La consulta SQL que desea ejecutar se ingresa como parámetro y los marcadores de posición se escriben así: nombre_marcador
			$my_Insert_Statement = $sql-> prepare ("INSERT INTO releve ( DATE , T_MINI , T_MAXI, LLUVIA , NIEVE , SAISON) VALUES (:DATE,:T_MINI,:T_MAXI,:LLUVIA,:NIEVE,:SAISON)");
			// Ahora le decimos al script a qué variable se refiere realmente cada marcador de posición usando el método bindParam()
			// El primer parámetro es el marcador de posición en la declaración anterior; el segundo parámetro es una variable a la que debe referirse
			
			$my_Insert_Statement-> bindParam (':DATE', $DATE ) ;
			$my_Insert_Statement-> bindParam (':T_MINI', $T_MINI ) ;
			$my_Insert_Statement-> bindParam (':T_MAXI', $T_MAXI ) ;
			$my_Insert_Statement-> bindParam (':LLUVIA', $LLUVIA ) ;
			$my_Insert_Statement-> bindParam (':NIEVE', $NIEVE ) ;
			$my_Insert_Statement-> bindParam (':SAISON', $SAISON ) ;
			
			
				// Ejecutar la consulta} usando los datos que acabamos de definir
				// El método de ejecución () devuelve VERDADERO si tiene éxito y FALSO si no, lo que le permite escribir sus propios mensajes aquí
				if ( $my_Insert_Statement-> execute ())
					{  
					header('Location: datos_meteo.php');
						exit();
					} 
					else 
					{  
					echo "No se pudo crear el registro" ;
					}
			}	
		}

Le probleme est que seulement la premiere ligne est enregistré.

Pourriez-vous m'aider a résoudre mon problème?

Merci d'avance

A voir également:

3 réponses

jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
22 nov. 2022 à 13:18

Bonjour

Normal vu que tu fais une redirection après l'instruction qui exécute la requête SQL


0
yg_be Messages postés 22729 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 avril 2024 1 477
22 nov. 2022 à 13:21

bonjour,

Quand tu partages du code, merci d'utiliser ceci: https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

Dans ton code, tu fais une redirection après la première insertion.

0
mont_dani Messages postés 229 Date d'inscription mardi 6 juin 2017 Statut Membre Dernière intervention 10 février 2024
22 nov. 2022 à 15:09

Merci problème résolu

0