Bonjour à tous,

Je vous explique en quelques mots mon problème. Pour créer ma page d'ajout d'image, j'ai procédé par étape.
La première consistait à valider le bon envoi dans la base de données du chemin de l'image et des informations liées (taille...) + l'upload dans le dossier du serveur.
Jusque là, pas de souci si ce n'est que je voulais limiter la taille des images et donc les redimensionner pour alléger le poids (plutôt que de refuser l'envoi d'une image qui serait trop lourde).
Je me suis donc documenté sur les fonctions "imagecreatetruecolor", "imagecopyresampled", "imagejpeg"... trouvées sur les forums...

Mon code me permet donc maintenant de réduire considérablement la taille de mes images mais le problème se trouve dans ma requête de modification de mon entrée dans la base de données. Je procède peut-être à l'ancienne école mais voici la méthodo :
je créé une nouvelle entrée dans la base de données, je récupère la clé primaire, je vérifie que mon fichier est bien uploadé, je le redimensionne, le copie dans le dossier de destination puis modifie l'entrée en base de données avec les nouveaux id, chemin, largeur, hauteur...

Sauf que, là où ma requête de modification fonctionnait sans la partie resize de l'image, elle ne fonctionne plus maintenant.
Message d'erreur : Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in...

Voici donc le code en espérant qu'un téméraire osera s'y aventurer (si vous avez des conseils pour améliorer la logique de la page, n'hésitez pas !)
Merci
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
if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {

if(isset($_FILES["chemin_image"])){


// Définition de la requête permettant l'insertion d'une nouvelle ligne dans ma db
$insertSQL = sprintf("INSERT INTO tgd_image (chemin_image) VALUES (%s)",
GetSQLValueString("default.jpg", "text"));

mysql_select_db($database_connexionBDD, $connexionBDD);
$Result1 = mysql_query($insertSQL, $connexionBDD) or die(mysql_error());

// Récupération de l'id de la ligne qui vient d'être créé
$idPhoto = mysql_insert_id();

$esp = " ";
$majuscule = array('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
$minuscule = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z');
$accent = array('à'=>'a','á'=>'a','â'=>'a','ã'=>'a','ä'=>'a','å'=>'a','ò'=>'o','ó'=>'o','ô'=>'o','õ'=>'o','ö'=>'o','è'=>'e','é'=>'e','ê'=>'e','ë'=>'e','ì'=>'i','í'=>'i','î'=>'i','ï'=>'i','ù'=>'u','ú'=>'u','û'=>'u','ü'=>'u','ÿ'=>'y','ñ'=>'n','ç'=>'c','ø'=>'0','&'=>'','-'=>'');

mysql_select_db($database_connexionBDD, $connexionBDD);
$query_liste_id = "SELECT * FROM tgd_menu WHERE id_menu=".$_GET['idMenu']." ORDER BY id_menu ASC";
$liste_id = mysql_query($query_liste_id, $connexionBDD) or die(mysql_error());
$row_liste_id = mysql_fetch_assoc($liste_id);
$totalRows_liste_id = mysql_num_rows($liste_id);

$nomPhoto = $row_liste_id['nom_menu'];
$nomPhoto = str_replace($esp,"",$nomPhoto);
$nomPhoto = str_replace($majuscule,$minuscule,$nomPhoto);
$nomPhoto = strtr($nomPhoto,$accent);

$nomPhoto = $nomPhoto.'-'.$idPhoto;
$cheminImage = '../portfolio/';



if(is_uploaded_file($_FILES["chemin_image"]["tmp_name"])){


function resize_image($my_img,$folder,$numId){

$info = getimagesize($my_img);
$largeurImage = $info[0];
$hauteurImage = $info[1];
$typeImage = $info[2];
$largeurNew = 629;
$hauteurNew = round(($largeurNew / $largeurImage) * $hauteurImage);

switch($typeImage){
case 1:
$extension = ".gif";
$src_im = imagecreatefromgif($my_img);
break;
case 2:
$extension = ".jpg";
$src_im = imagecreatefromjpeg($my_img);
break;
case 3:
$extension = ".png";
$src_im = imagecreatefrompng($my_img);
break;
}

$dst_im = imagecreatetruecolor($largeurNew,$hauteurNew);
imagecopyresampled($dst_im,$src_im,0,0,0,0,$largeurNew,$hauteurNew,$largeurImage,$hauteurImage);

$cheminImage = $folder.$extension;

$toto = '../portfolio/zzzz'.$numId.'.jpg';
imagejpeg($dst_im,$toto,100);

if (imagejpeg($dst_im,$toto)){
$aVirer = '../';
$toto = str_replace($aVirer,'',$toto);


// le problème est ici je pense
$ReqSQL = "UPDATE tgd_image SET chemin_image='".$toto."', txt_image='".$_POST['txt_image']."', largeur_image=".$largeurNew.", hauteur_image=".$hauteurNew.", cle_menu=".$_GET['idMenu']." WHERE id_image=".$numId;
//echo $ReqSQL."<br/>";
//j'exécute ma requête de modification
mysql_query($ReqSQL, $connexionBDD) or die(mysql_error());
}
}

$file_tmp = $_FILES["chemin_image"]["tmp_name"];
$dest_file = $cheminImage.$file_tmp;
resize_image($file_tmp,$dest_file,$idPhoto);
}
}
}
Merci d'avance !