Bonjour à tous,

Débutant en PHP/PDO, j'ai conçu un code me permettant de modifier un ou plusieurs articles encodé dans une base de données.
Ces articles comprennent un ou plusieurs textes, une image et un pdf.

La difficulté que je rencontre est lors de l'UPDATE. Celui-ci fonctionne très bien pour le ou les textes mais pour les images et pdf's c'est autre chose.
Une fois l'UPDATE appliqué les images et pdf's sont modifés non pas sur l'article voulu mais sur le dernier encodé alors que le ou les textes se modifient bien sur l'article voulu ????

Ci-dessous vous trouverez le code en question pour l'UPDATE ainsi que le script resize.php

Auriez-vous une idée, une solution pour arranger le problème.

En vous remerciant à l'avance

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
 
<?php 
    include "db-link.php";
    include "class/resize.php";
 
    if(isset($_POST['adouc_modifOk'])){
        $_GET['id'] = $_POST['id'];
        $valide = TRUE;
        if((empty($_FILES["nameImg"]["name"]) && $_FILES["nameImg"]["name"] == "")){
            $error = "<p style='background-color:red;padding:10px;text-align:center;color:#fff'>Veuillez re-sélectionner votre image afin d'éviter une erreur du système.</strong></p>";
            $valide = TRUE;
        } elseif($valide){
            $error = "<p style='background-color:green;padding:10px;text-align:center;color:#fff'>Votre article  a bien été modifié.</p>";
 
            if(!empty($_FILES["nameImg"]["name"])){$db->exec('UPDATE classic SET img = ""');}else{}
            if(!empty($_FILES["namePdf"]["name"])){$db->exec('UPDATE classic SET pdf = ""');}else{}
 
            $req = $db->prepare("UPDATE classic SET description = :descriptionPrep,fonctionnement = :fonctionnementPrep
                                WHERE id = {$_GET['id']}");
            $req->execute(array(
                'descriptionPrep' => $_POST['description'],
                'fonctionnementPrep' => $_POST['fonctionnement'],
                ));
 
            $req1 = $db->query("SELECT MAX(id) AS imgNum FROM classic");
            $identif1 = $req1->fetch(PDO::FETCH_ASSOC);
            @$number1 = $identif1[imgNum];
 
            $rep1 = dirname(__FILE__)."/../img/produits/classic/";
 
            $file_tmp = $_FILES['nameImg']['tmp_name'];
            $dest_file = './../img/produits/classic/'.$number1.".jpg";
            resize_image($file_tmp,$dest_file);
 
            $finalName1 = $number1.$_FILES['nameImg']['tmp_name'];
            $finalName2 = $number1."-dellan.pdf";
 
            move_uploaded_file($_FILES["nameImg"]["name"], $rep1.$finalName1);
            move_uploaded_file($_FILES["namePdf"]["tmp_name"], $rep1.$finalName2);
        }
    }
 
    $q = $db->query("SELECT * FROM classic WHERE id={$_GET['id']}");
    $data = $q->fetch();
?>
<!DOCTYPE html>
<html lang="fr">
<head>
    <meta charset="UTF-8">
    <title>ADMIN - Modification Classic</title>
 
    <link rel="stylesheet" href="css/reset.css">
    <link rel="stylesheet" href="css/style.css">
 
    <script src="js/tinymce/tinymce.min.js"></script>
    <script>tinymce.init({
                            forced_root_block : "", 
                            force_br_newlines : true,
                            force_p_newlines : false,
                            width : '100%',
                            language : 'fr_FR',
                            selector:'textarea',
                            plugins: "textcolor colorpicker",
                            toolbar: "forecolor backcolor fontsizeselect charmap undo redo styleselect bold italic link image alignleft aligncenter alignright"
                        });
    </script>
</head>
<body>
 
    <?php include "class/class_menu.php";?>
 
    <div id="content">
        <div id="content-right">
            <div class="error">
                <p>
                    <?php if(isset($error)) {echo $error;} else { false; } ?> <!-- Message d'erreur -->
                </p>
            </div>
 
            <div id="title_admin">
                <p>Modification</p>
            </div>
 
        <form enctype="multipart/form-data" action="ad_classic_modif.php" method="post">
            <?php
                $sql = $db->query("SELECT * FROM classic WHERE id={$_GET['id']}");                 
                $data = $sql->fetch(); 
 
                echo    "<h1>Modifiez votre description: </h1><textarea style='height:250px;' placeholder='Votre texte ici' name='description'>".nl2br($data['description'])."</textarea>";
                echo    "<h1>Modifiez votre fonctionnement: </h1><textarea style='height:250px;' placeholder='Votre texte ici' name='fonctionnement'>".nl2br($data['fonctionnement'])."</textarea>";
 
            ?>
 
            <br><br>
 
            Image JPG :<input type="file" name="nameImg"/><br>
            Image PDF :<input type="file" name="namePdf"/><br>
 
            <input type="hidden" name="id" value="<?php echo $data['id'] ?>">
            <input type="hidden" name="adouc_modifOk" value="1" /><br>
            <input type="submit" value="Enregistrer"/>
        </form><br>
        </div>
 
    </div>
    <div id="clear"></div>
 
 
    <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
    <script type="text/javascript" src="js/animate.js"></script>
    <script type="text/javascript" src="js/lightbox.js"></script>
    <script>
        window.onload = function(){
            document.getElementById('onglets').style.display = 'block';
            document.getElementById('onglets').onclick = function(e){
                var actuel = e ? e.target : window.event.srcElement;
                if (!/li/i.test(actuel.nodeName) || actuel.className.indexOf('actif') > -1) {
                    return;
                }
                var allOnglets = document.getElementById('onglets').getElementsByTagName('li'),
                    i = allOnglets.length;
                while(i--){
                    if(allOnglets[i] == actuel){
                        allOnglets[i].className += ' actif';
                    }
                    else{
                        allOnglets[i].className = allOnglets[i].className.replace('actif', '');
                        if(String.trim){
                            allOnglets[i].className.trim();
                        }
                    }
                }
                setDisplay();
            }
            setDisplay();
        }
        function setDisplay(){
            var allOnglets = document.getElementById('onglets').getElementsByTagName('li'),
                allContenus = document.getElementById('contenu').getElementsByTagName('div'),
                i = allOnglets.length;
            while(i--){
                if(allOnglets[i].className.indexOf('actif') == -1){
                    allContenus[i].style.display = 'none';
                }
                else{
                    allContenus[i].style.display = 'block';
                }
            }
        }
    </script>
</body>
</html>
resize.php

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
<?php
 
function resize_image($my_img,$folder){
    $src_im = imagecreatefromjpeg($my_img);
    $size = getimagesize($my_img);
    $src_w = $size[0];
    $src_h = $size[1];
    $dst_w = 800; 
    $dst_h = round(($dst_w / $src_w) * $src_h);
    $dst_im = imagecreatetruecolor($dst_w,$dst_h);
    imagecopyresampled($dst_im,$src_im,0,0,0,0,$dst_w,$dst_h,$src_w,$src_h);    
    if (imagejpeg($dst_im,$folder)){
        imagedestroy($dst_im);
        imagedestroy($src_im);
        return true;
    }
    else {
        imagedestroy($dst_im);
        imagedestroy($src_im);
        return false;
    }
}
 
?>