begin process at 2010 02 10 10:20:16
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

update et upload


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

update et upload

jeudi 5 mars 2009 à 13:53:46 | update et upload

winnie39

Bonjour à tous,

Voila, a force de recherche et de poste (notamment ici),
j' ai pratiquement terminé le code que je désire.

Voici en quoi il consiste :
Je récupère de ma BDD des informations sur un produits, ainsi que un certain nombre de photo (5) dont le chemin est stocké dans la BDD.
Le script est là pour effectué des modification sur cette fiche.

Tout fonctionne, je peux tout modifier, y compris les photos...

SEULEMENT

si un champs d' upload est vide, le chemin est remplacé par un chemin vide...
comment faire pour récupérer ceux déja présent si l' on ne désire pas modifier une ou plusieurs photo???


Voici mon code tel qu' il est actuellement


<?php
include('connect.php');

$id_produit = $_POST['id_produit'];
$titre = mysql_escape_string($_POST['titre']);
$descriptif = mysql_escape_string($_POST['descriptif']);
$bonne_affaire = mysql_escape_string($_POST['bonne_affaire']);
$prix = mysql_escape_string($_POST['prix']);
$prix_promo = mysql_escape_string($_POST['prix_promo']);



mysql_query("UPDATE produit SET `titre` = '$titre',`descriptif` = '$descriptif',`prix` = '$prix',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") or die (mysql_error());  
 

for ($i = 1 ; $i < 6 ; $i++)
{

if($_FILES['fichier'.$i]['name']!='')
                                                {
    $dossier = 'img/bonnes_affaires/';
    $fichier = basename($_FILES['fichier'.$i]['name']);
    $taille_maxi = 200000;
    $taille = filesize($_FILES['fichier'.$i]['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier'.$i]['name'], '.');
  
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
        $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...';
    }
    if(($taille)>$taille_maxi)
    {
        $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
        //formatage du nom (suppression des accents, remplacements des espaces par "-")
        $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
        if(move_uploaded_file($_FILES['fichier'.$i]['tmp_name'], $dossier . $fichier)) //correct si la fonction renvoie TRUE
        {
            echo 'Upload effectué avec succès !';
            $chemin = 'chemin'.$i;
            ${$chemin} = $dossier.$fichier;
        }
        else //sinon, cas où la fonction renvoie FALSE
        {
            echo 'Echec de l\'upload !';
        }
    }
    else
    {
        echo $erreur;
    }
}}

echo $chemin1;
mysql_query("UPDATE produit SET `img_photo1`='$chemin1', `img_photo2`='$chemin2', `img_photo3`='$chemin3', `img_photo4`='$chemin4', `img_photo5`='$chemin5' WHERE id_produit ='$id_produit'") or die (mysql_error());
//   header('Location: accueil.php?contenu=bonnes_affaires_tmp');

?>

Si quelqu' un a une idée, je suis preneur
 

Il vaut mieux une bière dans une main que deux n' importe quoi d' autre
mardi 10 mars 2009 à 23:37:04 | Re : update et upload

jreaux62

Réponse acceptée !
Voir (MONFICHIER_TRAITER.php) dans :
http://www.phpcs.com/tutoriaux/PHP-REDIMENSIONNER-IMAGE-PICTO-APRES-UPLOAD_881.aspx

En clair :
recuperer les NOMS des images anciennes contenues dans la
DB (au niveau du formulaire : voir MONFICHIER_FORM.php) :
<INPUT type="hidden" name="PHOTO1avant" value="<?php echo $val['PHOTO1']; ?>">
.........


Et au niveau du traitement (dans la boucle) :
if($_FILES['fichier'.$i]['name']!='') {
.... // (traitement de l'image uploadee)
} else {
.... // (on garde le nom de l'ancienne image)
$photo = $_POST['PHOTO'.$i.'avant'];
}
.... // enfin enregistrement dans la BD


Ou mieux :
faire dans la boucle l'enregistrement de la photo uniquement si uploadee :
if($_FILES['fichier'.$i]['name']!='') {
.... // (traitement de l'image uploadee)
.... // enregistrement du NOM de l'image uploadee dans la BD
}
lundi 16 mars 2009 à 17:42:40 | Re : update et upload

winnie39

Merci beaucoup, après étude minutieuse de ton tuto et de ton post, je suis finalement arrivé à une solution qui tiens la route,

La voici et encore merci  jreaux62:

<?php
include('connect.php');

$id_produit = $_POST['id_produit'];
$titre = mysql_escape_string($_POST['titre']);
$descriptif = mysql_escape_string($_POST['descriptif']);
$bonne_affaire = mysql_escape_string($_POST['bonne_affaire']);
$prix = mysql_escape_string($_POST['prix']);
$prix_promo = mysql_escape_string($_POST['prix_promo']);

$chemin1= $_POST['PHOTO1avant'];
$chemin2 = $_POST['PHOTO2avant'];
$chemin3 = $_POST['PHOTO3avant'];
$chemin4 = $_POST['PHOTO4avant'];
$chemin5 = $_POST['PHOTO5avant'];

echo $chemin1;
echo'<br>';
echo $chemin2;
echo'<br>';
echo $chemin3;
echo'<br>';
echo $chemin4;
echo'<br>';
echo $chemin5;
echo'<br>';

mysql_query("UPDATE produit SET `titre` = '$titre',`descriptif` = '$descriptif',`prix` = '$prix',`prix_promo` = '$prix_promo' WHERE id_produit ='$id_produit'") or die (mysql_error());  
 

for ($i = 1 ; $i < 6 ; $i++)
{

if($_FILES['fichier'.$i]['name']!='')
                                                {
    $dossier = 'img/bonnes_affaires/';
    $fichier = basename($_FILES['fichier'.$i]['name']);
    $taille_maxi = 200000;
    $taille = filesize($_FILES['fichier'.$i]['tmp_name']);
    $extensions = array('.png', '.gif', '.jpg', '.jpeg');
    $extension = strrchr($_FILES['fichier'.$i]['name'], '.');
  
    //Début des vérifications de sécurité...
    if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
    {
        $erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg...';
    }
    if(($taille)>$taille_maxi)
    {
        $erreur = 'Le fichier est trop gros...';
    }
    if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
    {
        //formatage du nom (suppression des accents, remplacements des espaces par "-")
        $fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        $fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
        if(move_uploaded_file($_FILES['fichier'.$i]['tmp_name'], $dossier . $fichier)) //correct si la fonction renvoie TRUE
        {
            echo 'Upload effectué avec succès !';
            $chemin = 'chemin'.$i;
            $final = $dossier.$fichier;
        }
        else //sinon, cas où la fonction renvoie FALSE
        {
            echo 'Echec de l\'upload !';
        }
    }
    else
    {
        echo $erreur;
    }
}
else{
$final = $_POST['PHOTO'.$i.'avant'];


}
echo'<br>';
mysql_query("UPDATE produit SET `img_photo$i`= '$final' WHERE id_produit ='$id_produit'") or die (mysql_error());
echo $final;
}




//   header('Location: accueil.php?contenu=bonnes_affaires_tmp');

?>


Il vaut mieux une bière dans une main que deux n' importe quoi d' autre


Cette discussion est classée dans : fichier, mysql, upload, prix, produit


Répondre à ce message

Sujets en rapport avec ce message

modification de fiche produit [ par winnie39 ] Bonjour à tous,voila j' ai un petit problème,Dans le site il y a ce que j' appel une fiche produit avec plusieurs photos.Tout à été gérer pour l' ajou ne pas modifier le nom du fichier uploader vers mysql [ par abarial ] Bonjour, je suis plus que debutant, un capable d'ecrire un bout de code sans me servir des sources. voila mon probleme: j'ai ce bout de code et il me Probleme avec un formulaire d'upload [ par prog2ni ] Bonjour, Je suis debutant en php. Je vous explique mon probleme : J'ai en place un script d'upload d'image, il fonctionne, associer a ce script, j'in Upload facultative [ par winnie39 ] Bonjour à Tous,je me penche depuis peux à l'upload de fichier couplé à la base de données.Tous c'est parfaitement passé, alors je voudrais l' améliore Erreur de syntaxe [ par winnie39 ] Bonjour,Voila j' exécute une requête d' update, seulement une fois la requête exécutée, je me retrouve avec l' erreur suivante : Erreur de syntaxe prè probleme d'insertion des données dans la base de donnée [ par greg975 ] bonsoir à tous j'ai un probleme je n'arrive pas à inserrer les données dans la base de donnée par le bias d'un formulaire. voici le code: inclu Upload de fichier txt sur MySql [ par pierreot ] J'ai un problème à uploader un fichier txt sur PhpMyAdmin. Le but est d'insérer des données d'un fichier txt dans une table vierge, mais cela me donne Problème Transfert de fichier (input type=file) [ par Hector78 ] Hello !J'ai le code suivant qui devrait m'être utile pour "simuler" un ftp interne à un site. Dans les grandes lignes, il est sensé :- permettre la sé probleme sur caddie en php [ par kowalska ] voila mon probleme est que je ne trouve pas une solution a l'ajout de quantite d'un produit il me double le produit sinon le reste aucun probleme voic Upload de fichier [ par Dipston ] Bonjour, j'ai un petit souci au niveau droit d'acces ... j'upload un fichier grace a la fonction move uploaded file . J'ai besoin de sécurisr ses docu


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,265 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales