Salve a tutti,

Sò di essere un neofita del php però via via che risolvo/incontro problemi mi piace capire il perchè, non mi basta che il tutto funzioni ma devo capire perchè lo fa...

codice:
$numero_file= count($_FILES['file']['tmp_name']);
	echo $numero_file;
	for($i=1;$i<$numero_file;$i++){
		
		$sql_img='insert into immagini(img_alt, img_title, img_port_graf_id) values("'.$img_alt.'","'.$img_title.'","'.$id_nuovo.'")';
		
	
		mysql_query($sql_img, $conn);
		$id_img=mysql_insert_id();
		echo $id_img;
		$pippo='file'.$i.'';
		echo $pippo;
	
		if(is_uploaded_file($_FILES['file']['tmp_name'][$i])){
			$cartella=date("Y").date("m");
			echo $cartella;
			$upload_dir=$_SERVER['DOCUMENT_ROOT'].'/msystem/upload/immagini/'.$cartella.'/';
			if(!file_exists($upload_dir)){mkdir($upload_dir);}
			
			$filename=$id_img.'_'.$_FILES['file']['name'][$i];
			
			$estensioni_ammesse=array('jpg','jpeg','gif','png');
			$estensione=substr($filename,strpos($filename,'.')+1,(strlen($filename)-strpos($filename,'.')));
			$filename_old=sanitize($filename, PARANOID);
			$filename_new=''.$filename_old.'.'.$estensione.'';
			echo $filename_new;
			if(in_array($estensione,$estensioni_ammesse)){
				move_uploaded_file($_FILES['file']['tmp_name'][$i],$upload_dir.$filename_new);
				$sql='update immagini set img_url="'.$cartella.'/'.$filename_new.'" where img_id='.$id_img.' ';
				mysql_query($sql);
				}
	
			else{$output='Non è stato possibile inserire l\'immagine 
Torna indietro  ';}
		}
		
	}
questo script funziona correttamente ( non badate agli echo che ho messo solo per vedere lo script), però ho perso molto tempo a risolvere un piccolo problema; lo script serve per inserire piu immagini in un database; se inserivo 7 immagini mi creava 8 record di cui il primo era vuoto e negli altri 7 c'era l'url dell'immagine, questo accadeva perchè nel ciclo for $i==1 dopo vari tentativi ho posto $i=1... quello che non capisco è perchè con $i==1 mi crea un recordo in piu vuoto, mentre se pongo $i=1 funziona tutto correttamente...