begin process at 2012 05 31 00:17:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

inserer less liens url d'images dans une base de données


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

inserer less liens url d'images dans une base de données

lundi 18 mai 2009 à 15:33:50 | inserer less liens url d'images dans une base de données

hannao

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


lundi 18 mai 2009 à 18:11:55 | Re : inserer less liens url d'images dans une base de données

nautilus99

vu que je vois une table 'jos_content', il est fort probable que tu utilises Joomla. Pourquoi dans ce cas ne pas utiliser le framework et ses chemins relatifs par exemple $this->baseurl après avoir instancié ou vérifié l'existence des libs core joomla ?


lundi 18 mai 2009 à 20:14:55 | Re : inserer less liens url d'images dans une base de données

hannao

exact nautilus99 , c'est du joomla, le problème est que l'on m'a confié ce travail aolrs que je ne connais pas du tout joomla alors avec ce que tu me dit il doit donc y avoir quelque chose à faire de plus simple que ce que j'ai fait
pourrais tu m'orienté un peu ce serais sympa cela me permettra d'apprendre joomla plus vite  .
sinon j'ai aussi appris que j'aurais pu utiliser des extensions pour faire mes redimensionnement d'images plutôt que de tout coder à la main
, mais bon c'est fait. Je dois pour finir ce qui m'a été demandé
insérer un csv dans le content c'est a dire d'après ce que j'ai compris les articles.
dans ce même article je dois insérer mes photos.
Je ne connais pas bien le frameworks, je vais ouvent pourtant sur l'api de joomla.
Merci nautilus99 de ton aide.

lundi 18 mai 2009 à 20:24:52 | Re : inserer less liens url d'images dans une base de données

nautilus99

Il existe uncomposant admin tout fait pour l'import d'articles en csv, pourquoi réinventer la roue ?

Pour réussir ton composant supplémentaire, commences par utiliser directement les classes, ça évitera les problèmes futurs.

Regardes le code du comoosant content, et tu auras vraiment tout sous la main, y compris les diverses tables à alimenter, et comment s'insèrent le sliens image, pour rester compatible par exemple avce l'uage des extensions lightbox...




lundi 18 mai 2009 à 21:32:39 | Re : inserer less liens url d'images dans une base de données

hannao

merci  nautilus99 je comprends mieux la philosophie de joomla, je suis entrain de me faire l'api mais j'avoue que c'est large je suis aller dans framework et recherche ou plutôt visite l'ensemble.
Comme tu dis on ne va pas réinventer la roue alors si joomla le permet je vais me tenir bien au courant.
Merci je crois que j'étais parti sur une mauvaise piste : tout codé à la main.


Cette discussion est classée dans : fichier, images, dossier, image, jpg


Répondre à ce message

Sujets en rapport avec ce message

Image d'un dossier avec affichage spécial ! [ par craft2005 ] Bonjour à tous,Je m'excuse d'avance de reposter un message sur le même thème que le précédent, mais je me suis absenté qualque temps, et par ailleurs Problème upload de fichier [ par Tupac59 ] Bonjour, ce script me permet à un membre d'uploader des fotos dans son dossier. Le problème est que lorsque que j'upload une foto, celle-ci se place d résultat par page [ par kenny18 ] hello,je parcours un dossier selon le code ci-dessous.$tableau = array();$dossier = opendir ('images/photos/'); while ($fichier = readdir ($dossier)) Galerie d'image [ par Tokuna ] Bonjour,Je ne m'y connais absolument pas en image niveau php, donc, j'aimerai vous poser une question.Je désirai créer une "galerie d'image" très simp Problème de transfert d'image pendant un upload de fichier html par mail() [ par JeanMi66 ] Salut à tous. J'envoi par la fonction mail() un fichier html contenant du texte et des images. Le fichier figure sur le serveur, les images aussi et script Image du jour [ par mike501 ] Bonjour, j ai un petit souci avec mon code qui permet de mettre sur mon site une image qui change chaque jour mais le souci qui a ces que les image qu galerie d'image [ par darknessneo ] Bonjours à tous.Je vais aller tout de suite dans le vif du sujet. J'ai cherché partout un script pour une galerie d'image, mais aucunes ne me convenai Listage d'un repertoire / Un truc m'échappe [ par gorbfr ] Bonjour,J'ai ce code qui fonctionne bien :function lire_dossier($dir){  $dossier=opendir($dir);  while($fichier=readdir($dossier))  {    $ignore=array transfert contenu dossier image [ par cobra176 ] bonjour a tousje recherche le moyen de transfert le contenu d'un dossier en termes d'images.grace a l'aide d'un formulaire.exemple.je veux tranfertre Copie de fichier [ par BirD ] Hello, j'ai un ptit prob pour copier une image, je m'explique: j'arrive parfaitement à copier l'image, mais dans le même dossier, ou un sous dossier,


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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,312 sec (3)

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