bonjour tous le monde,
voilà d'un côté j'ai fait un code pour faire des vignettes qui fonctionne bien.
J'ai un dossier images qui contient x dossier images qui eux même contiennent x images
ex : dossier 1 contient les images 1-1.jpg, 1-2.jpg
dossier2 contient 2-1.jp,2-2.jpg etc...
je voudrais maintenant faire une requête qui insére l'adresse des dossiers et images qu'il contient dans un seul champs de la base de données mysql etje ne sais pas comment m'y prendre
je vous donne le code php pour la création de vignette
<?php
//Vérifie si un fichier ou un dossier existe)
//phpinfo();
$racine = "images";
$dossier_reduit = "petite_images";
$max = 250;
lit_dossier($racine);
function lit_dossier($dir) {
global $dossier_reduit;
if (!is_dir($dir)) {
echo "$dir n'est pas un dossier";
return;
}
//Ouvre le dossierPrincipale et renvoi un tableau
$liste = scandir($dir);
foreach ($liste as $d) {
if ($d!="." && $d!=".." && $d!=$dossier_reduit && is_dir($dir."/".$d)) {
echo "$dir/$d est un dossier<br/>\n";
echo"$d<br>\n"; // pour recuperer le n° de dossier images
lit_dossier($dir."/".$d);
} else {
//echo "$dir/$d est un fichier ou . ou ..<br/>\n";
}
}
traiter_dossier($dir);
}
function traiter_dossier($gf) {
global $dossier_reduit, $max;
$gf .= "/";
$pf = $gf.$dossier_reduit."/";
// tester si le dossier de destination existe, sinon le créer
if (!is_dir($pf)) {
mkdir($pf);
}
// lister les images du dossier grand_format
$liste = glob($gf."*{jpg,gif,png,jpeg}",GLOB_BRACE); // => "${gf}*jpg" -> "images/*jpg"
// $liste = array('images/un.jpg','images/deux.jpg','images/trois.jpg','images/quatre.jpg');
$imgs = array();
// pour chaque image du dossier grand_format
foreach ($liste as $imageG) {
$fichier = basename($imageG); // "images/un.jpg" => "un.jpg"
echo "- ${pf}${fichier}<br/>\n";
// si pas jpg alors renommer en jpg sinon ne rien ajouter
if (!is_file("${pf}${fichier}")) { // "imagesDesti/un.jpg"
// créer une copie de l'image dans le dossier petit_format
reduire($fichier,$gf,$pf,$max);
echo "j'ai du réduire<br/>\n";
}
}
}
function reduire($fichier, $d_src, $d_dest, $max) {
// Crée une nouvelle image à partir d'un fichier src
$ext = trouver_extension($fichier);
switch($ext) {
case "jpg":
case "jpeg":
$f = "imagecreatefromjpeg";
$fe = "imagejpeg";
break;
case "gif":
$f = "imagecreatefromgif";
$fe = "imagegif";
break;
case "png":
$f = "imagecreatefrompng";
$fe = "imagepng";
break;
default:
return;
}
$grande_image = $f("${d_src}${fichier}");
// prend les mesures de l'image src
$ls = imagesx($grande_image);
$hs = imagesy($grande_image);
// On établi une regle de traitement --- si largeur src>hauteur de la source alors
if ($ls > $hs) {
$ld = $max;
$hd = $hs / $ls * $max;
} else {
$hd = $max;
$ld = $ls / $hs * $max;
}
$petite_image = imagecreatetruecolor($ld,$hd);
imagecopyresampled($petite_image, $grande_image, 0, 0, 0, 0, $ld, $hd, $ls, $hs);
/* Enregistre l'image_gd $petite_image dans le fichier "$d_dest$fichier" */
$fe($petite_image, $d_dest.$fichier);
}
function trouver_extension($fichier){
$ext = explode(".",$fichier);
$extension = array_pop($ext);
return $extension;
}
?>
et maintenant le code qui est sur un autre fichier.php pour l'insertion tout marche sauf les images
17/05/2009 22:08:53
<?php
mysql_connect("localhost","root",""); // declaration de la connexion
mysql_select_db("interieu");
$ligne = 0;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 0, chr(9),'|')) !== FALSE) {
$ligne++;
$num = count($data);
for ($c=0; $c < $num; $c++) {
echo $data[$c].'<br />';
$var1 = substr($data[2], 0, 20);
}
$query = "INSERT INTO jos_content (`id`,`title`,`alias`,`title_alias`,`introtext`,`fulltext`,`state`,`sectionid`,`mask`,`catid`,`created`,`created_by`,`created_by_alias`,`modified`,`modified_by`,`checked_out`,`checked_out_time`,`publish_up`,`publish_down`) VALUES ('".
$data[0] ."','".$data[1]."','".$data[1]."','".$img."','".$var1."','".$data[2]."',1,5,0,0,now(),62,'".idem."',now(),62,76392,now(),now(),'2010-10-10 00:00:00')";
mysql_query($query);
($query);
echo $query.'<br />';
}
?>
Voilà et là je ne sais pas comment faire pour insérer l'adresse des images et le numéro de dossier dans $img
j'espère que c'est clair