Visualizzazione dei risultati da 1 a 2 su 2

Discussione: delucidazione

  1. #1

    delucidazione

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

  2. #2
    == e' una comparazione. = una assegnazione.

    Quindi il ciclo for alla prima esecuzione trova una comparazione ed esegue un ciclo probabilmente con un notice che non vedrai se non abiliti i NOTICE, questo avverrebbe se $i non esistesse ancora al momento del for().

    Poi incrementa ad 1 e completa il ciclo. quindi n+1

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.