RESOLU probleme de update aprés upload de fichier

Petit nouveau ! | 3 Messages

29 juin 2012, 00:32

Bonjour a tous,
Je me tourne vers vous car je me trouve confronté a un soucis qui commence a me faire tourner en bourrique:
Explication:
j' ai créer un site pour ma formation (un opticien)et il veut dans sa partie admin pouvoir mettre a jour ses produit et uploader des images de ses lunettes qui s afficheront dans la partie publique du site (l insert ainsi que l upload se déroule très bien et ma table se rempli gaiement ) ô joie
le souci est que lors d une modification de produit s 'il ne reupload pas la photo correspondante au produit celle-ci s 'efface de ma table..................les autres infos ne bouge pas mais je n arrive pas a écrire ma condition qui lui dirais si il n y a pas d upload tu gardes les anciennes valeur


mon code:
<?php //declaration des requetes d envoi de fichier
 if (isset($_FILES['photo']['tmp_name']) && is_uploaded_file($_FILES['photo']['tmp_name']))
{
	$taillemax = 20000000 ;//taille du fichier
$taille = filesize($_FILES['photo']['tmp_name']) ;
$extensionsvalide = array('.png', '.gif', '.jpg', '.jpeg', '.bmp');//verification des extensions autorisée
$type_envoye = strrchr($_FILES['photo']['name'], '.');

if($taille>$taillemax)
{
	echo 'Le fichier est trop volumineux. Taille Maxi acceptée : 200 ko!!';
	}
		elseif (!in_array($type_envoye, $extensionsvalide))
{ 
echo 'Le type du fichier n\'est pas autorisé! <br /> Uniquement les types : png, jpg, jpeg, gif, bmp' ;
}
else
	{	


$dossier = "..//img/" ;//dossier d'enregistrement du fichier
$fichier = basename($_FILES['photo']['name']) ;
$fichier = strtr($fichier,

'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('#[^.a-z0-9]+#i','_', $fichier);
if(move_uploaded_file($_FILES['photo']['tmp_name'], $dossier . $fichier))
	{
		echo 'Votre fichier image a bien été uploader';
	}
 }
}
 
else
	{
		echo    'Votre fichier image n\'a pas été uploader';
	}

?>
<?php 
// requete update de mise a jour du produit
$id=$_POST['id'];
$reference=$_POST['reference'];
$categorie=$_POST['categorie'];
$marque=$_POST['marque'];
$prix=$_POST['prix'];
$logo=$_POST['logop'];
$modele=$_POST['modele'];
if ($fichier == ''){             //ici je pense que la condition devrai supplanter l 'update si je n ai pas de fichier a uploader $fichier étant le fichier uploader
	echo $_POST['photo'];
}else{
	echo $fichier;}


  $updateSQL = sprintf("UPDATE t_eoproduit SET reference='$reference', categorie='$categorie',marque='$marque', prix='$prix', logo='$logo', modele='$modele', photo='$fichier', x_mini='150', y_mini='100',x_maxi='',y_maxi='' WHERE id='$id'");
                      
					 
  mysql_select_db($database_cnxespaceoptique, $cnxespaceoptique);
  $Result1 = mysql_query($updateSQL, $cnxespaceoptique) or die(mysql_error());
//update ok redirection vers la page de confirmation
  $updateGoTo = "Espace_optique_modifier_confirmation2.php";
  if (isset($_SERVER['QUERY_STRING'])) {
    $updateGoTo .= (strpos($updateGoTo, '?')) ? "&" : "?";
    $updateGoTo .= $_SERVER['QUERY_STRING'];
  }
  header(sprintf("Location: %s", $updateGoTo));
?>
avec bcp d 'espoir
Modifié en dernier par ooaps le 29 juin 2012, 10:19, modifié 1 fois.

Mammouth du PHP | 1029 Messages

29 juin 2012, 09:09

Il faudrait optimiser, mais ceci devrais faire l'affaire le temps que tu refactorises ton code :
if ($fichier == ''){             //ici je pense que la condition devrai supplanter l 'update si je n ai pas de fichier a uploader $fichier étant le fichier uploader
         $updateSQL = sprintf("UPDATE t_eoproduit SET reference='$reference', categorie='$categorie',marque='$marque', prix='$prix', logo='$logo', modele='$modele', x_mini='150', y_mini='100',x_maxi='',y_maxi='' WHERE id='$id'");
}else{
       $updateSQL = sprintf("UPDATE t_eoproduit SET reference='$reference', categorie='$categorie',marque='$marque', prix='$prix', logo='$logo', modele='$modele', photo='$fichier', x_mini='150', y_mini='100',x_maxi='',y_maxi='' WHERE id='$id'");
}





L'expérience est la somme de toutes nos erreurs.

Petit nouveau ! | 3 Messages

29 juin 2012, 10:17

Merci ca marche juste comme il faut j avais tellement la tete dans le guidon que je n avais pas pensé comme tu l as fait
merci encore et en regardant je me dis que c est tellement logique....................