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...
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...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 ';} } }![]()

Rispondi quotando