Rechercher : dans
Par :

[PHP/MySql]: foreach et insert into

tonguim, le 3 aoû 2007 à 14:57:53 
 Signaler ce message aux modérateurs

Bonjour,

j'ai posté il y'a quelques jours concernant le même script, mais le problème étant à un autre niveau, je poste un nouveau message.

Je tente d'insérer 3 éléments dans une table MySql, mais les données ne sont pas insérées; il n'ya aucune erreur affichée.

Ma table "suivi_photos" contient 5 champs dont:
-le premier est "id" qui s'incrémente automatiquement
-le second "code_agem" doit contenir la valeur "$php_code_agem
-les 3 derniers champs "photo1, photo2,photo3" contiennent les valeurs du tableau html "photos[]"

Merci de m'aider à résoudre ce problème.

Voici mon code:

<?php
	include "connexion.php";
	form();	

	function form()
	{
		global $taille_maxi;
		global $php_code_agem; //recupération du code agem du fichier visites_march_trav.php
		$date=date("ymdhis");
		
		echo '<hr/>
		<form enctype="multipart/form-data" action="" method="post">
			<table width="80%" border="0" cellspacing="0" cellpadding="0" align="right">
				<tr>
					<td>
						<input type="hidden" name="MAX_FILE_SIZE" value="500000">';
						for($i = 1; $i <= 3; $i++)
						{
							echo 'image '.$i.' '.'<input type="file" name="photos[]"><br>';
						}
						echo '<input type="submit" name="btonEnvoyer" value="Envoyer les images">
					</td>
				</tr>
			</table>
		</form>';
		if ($_POST['btonEnvoyer'])
		{
			$rep_destination = '../images/suivi_photo/';
			
			$point=strrpos($_FILES['photos']['name'], ".");	
			if ($point)
				$extension=substr($_FILES['photos']['name'], $point);
			else
				$extension ="";		
			
			foreach($_FILES['photos']['name'] as $key => $value1)
			{
				$matable = "suivi_photos";
				$table=array('id', 'code_agem', 'photo1',  'photo2', 'photo3');
				$valeurs= array('','$php_code_agem','$value1');
				
				$sqlChamps='';
				$sqlValeurs='';
				
				foreach($table as $nomChamps)
				{
					foreach($valeurs as $contenuChamps)
					{
						$sqlChamps .= $nomChamps.', ';
						$sqlValeurs .= $contenuChamps.', ';
						
						$uploadfile = $rep_destination . basename($_FILES['photos']['name'][$key]);
	
						if (move_uploaded_file($_FILES['photos']['tmp_name'][$key], $uploadfile))
						{
							echo ' image chargée avec succès! <br>';
							
							$sql = 'insert into ' . $matable . '(' . $sqlChamps . ') values (' . $sqlValeurs . ');'; echo "SQL: [".$sql."]\n<br/>";
							mysql_query($sql);
						}
					}
				}
			}
		}
	}
?>
Configuration: Windows XP
Firefox 2.0.0.6


Mes requêtes s'affichent ainsi qu'il suit à l'écran:

SQL: [insert into suivi_photos(id, ) values (, );]
SQL: [insert into suivi_photos(id, ) values (, );]
SQL: [insert into suivi_photos(id, ) values (, );] 

Collection CommentÇaMarche.net