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...