IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Récupérer image en PHP4 [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut Récupérer image en PHP4
    Bonjour,
    j'ai un soucis avec mon script:
    il fonctionne pour une image mais dans le cas de plusieurs images, il ne se passe rien: pas de message d'erreur, si ce n'est que d'afficher l'url absolue du script. voici le code source.
    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
     
    <?php 
    header("Content-Type: image/jpg");  
     
        #--------------------------------------- 
        #on se connecte à la base de données 
        #--------------------------------------- 
            function bdd_connect() {   
                $link=@mysql_connect("localhost","root",""); // sql's params here  
                if ($link && @mysql_select_db("nom_base")) // here database's name  
                    return ($link);  
                return (FALSE);  
            } 
            $link=bdd_connect();  
            if (!$link) die("SQL connexion failed"); 
     
        #--------------------------------------------- 
        #choisir la table et prendre la colonne thumbs  
        #---------------------------------------------- 
        function recup_images($chemin, $sponsor){ 
            $i=''; 
            $j=''; 
            switch($spnsor){ 
                case 'XP,pp': 
                $SQL_THUMBS        = "xp_videos"; 
                $SQL_COLUMN        = "thumbs"; 
                $NB_THUMBS        = 10; 
                $sql_recup_thumbs    = mysql_query("SELECT $SQL_COLUMN FROM $SQL_THUMBS") or die(mysql_error()); 
                $row                 = mysql_fetch_row($sql_recup_thumbs) or die(mysql_error()); 
                $NUM_ROWS             = mysql_num_rows($sql_recup_thumbs) or die(mysql_error()); 
                $URL_IMG             = "http://img$i.domaine.com/rep/$row[$j]/$i.jpg"; 
                break; 
                } 
            for($j=0;$j<=$NUM_ROWS;$j++){ 
                for($i=1;$i<=$NB_THUMBS;$i++){     
                    $destination = $chemin.$row[$j].','.$i.'.jpg'; 
                    $reponse = file_get_contents($URL_IMG); 
                    echo $URL_IMG; 
                    copy($URL_IMG,$destination); 
                } 
            } 
        } 
     
        recup_images('STORAGE/','XP,pp'); 
        #fermer la connexion à la base de données 
        @mysql_close($link); 
    ?>
    Si quelqu'un peut tester et me dire s'il obtient un message d'erreur.

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Ce n'est pas ainsi qu'on parcourt le résultat d'une requête : les fonctions mysql_fetch_* ne revoient pas un tableau comportant l'ensemble des résultats mais les valeurs des différents champs d'UN enregistrement sous forme de tableau (ou autre).

    passer des requêtes MySQL en PHP

    Notez également que les fonctions mysql_fetch_* ne sont pas à l'origine d'erreurs (dans la mesure où l'exécution de la requête est testée) puisqu'elles renvoient FALSE lorsqu'il ne reste plus d'enregistrement dans le résultat (rowset). La partie or die n'a donc pas lieu d'être sur celles-ci.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Merci julp:

    voici le code modifié:
    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
     
    function recup_images($chemin, $sponsor){
    		//$i='0';
    		//$j='0';
    		switch($sponsor){
    			case 'XP,pp':
    			$SQL_THUMBS		= "xp_videos";
    			$SQL_COLUMN		= "thumbs";
    			$NB_THUMBS		= 10;
    			$sql_recup_thumbs	= mysql_query("SELECT $SQL_COLUMN FROM $SQL_THUMBS") or die(mysql_error());
    			$NUM_ROWS 			= mysql_num_rows($sql_recup_thumbs) or die(mysql_error());
    			break;
    		}
    		while($row=mysql_fetch_row($sql_recup_thumbs)){
    			for($j=0;$j<=$NUM_ROWS;$j++){
    				for($i=1;$i<=$NB_THUMBS;$i++){
    					$URL_IMG = "http://img".$i.".domaine.com/rep/".$row[0]."/".$i.".jpg";
    					$destination = $chemin.$row[0].','.$i.'.jpg';
    					$reponse = file_get_contents($URL_IMG);
     
    					echo $reponse;
    					copy($URL_IMG,$destination);
    				}
    			}
    		}
    	}
     
    	recup_images('STORAGE/','XP,pp');
    Le code fonctionne, sauf que dans ma base il y a plusieurs lignes, mais ça ne "get" que la première ligne du résultat

  4. #4
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    Vos boucles for ne servent à rien (mais j'ai pas vraiment compris l'intérêt de la deuxième) : le while suffit à lui seul pour parcourir les résultats de la requête.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par julp Voir le message
    Vos boucles for ne servent à rien (mais j'ai pas vraiment compris l'intérêt de la deuxième) : le while suffit à lui seul pour parcourir les résultats de la requête.
    l'interet de la deuxieme tient du fait que je veuille 10 images.

    Sinon j'ai évolué dans ma recherche:
    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
     
    function recup_images($chemin, $sponsor){
    		//$i='0';
    		//$j='0';
    		switch($sponsor){
    			case 'XP,pp':
    			$SQL_THUMBS		= "xp_videos";
    			$SQL_COLUMN		= "thumbs";
    			$NB_THUMBS		= 10;
    			$sql_recup_thumbs	= mysql_query("SELECT $SQL_COLUMN FROM $SQL_THUMBS LIMIT 0,100") or die(mysql_error());
    			$NUM_ROWS 			= mysql_num_rows($sql_recup_thumbs) or die(mysql_error());
    			break;
    		}
    		while($row=mysql_fetch_array($sql_recup_thumbs)){
    			for($j=0;$j<=$NUM_ROWS;$j++){
    				for($i=1;$i<=$NB_THUMBS;$i++){
    					$URL_IMG = "http://img".$i.".domaine.com/rep/".$row['thumbs']."/".$i.".jpg";
    					$destination = $chemin.$row[0].','.$i.'.jpg';
    					//$reponse = file_get_contents($URL_IMG);
    					echo 'url= '.$URL_IMG.'<br />';
    					echo 'row= '.$row[0].'<br />';
    					//echo $reponse;
    					//copy($URL_IMG,$destination);
    				}
    			}
    		}
    	}
     
    	recup_images('STORAGE/','XP,pp');
    Mon script fonctionne (quand je commente la ligne avec copy()).
    Les "echo" s'affichent bien (lit toutes les lignes) mais ça ne fonctionne pas quand j'utilise le copy() = il lit la premiere ligne de la BDD puis s'arrete en disant que le script a pris plus de 30 sec.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 14
    Points : 12
    Points
    12
    Par défaut
    Re,
    voici le code définitif qui fonctionne grâce à vos commentaires et aiguillages: merci 1000 foix encore.
    J'ai supprimer la ligne qui fait file_get_contents
    Je partage ici pour ceux qui veulent:
    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
     
    <?php
    header("Content-Type: image/jpg"); 
    //mettre ici le code de connexion à la base de données
    function recup_images($chemin, $sponsor){
    		//$i='0';
    		//$j='0';
    		switch($sponsor){
    			case 'XP,pp':
    			$SQL_THUMBS		= "xp_videos";
    			$SQL_COLUMN		= "thumbs";
    			$NB_THUMBS		= 10;
    			$sql_recup_thumbs	= mysql_query("SELECT $SQL_COLUMN FROM $SQL_THUMBS LIMIT 0,100") or die(mysql_error());
    			break;
    		}
    		while($row=mysql_fetch_array($sql_recup_thumbs)){
    			for($i=1;$i<=$NB_THUMBS;$i++){
    				$URL_IMG = "http://img".$i.".domaine.com/rep/".$row['thumbs']."/".$i.".jpg";
    				$destination = $chemin.$row[0].','.$i.'.jpg';
    				echo 'url= '.$URL_IMG.'<br />';
    				echo 'row= '.$row[0].'<br />';
    				copy($URL_IMG,$destination);
    			}
    		}
    	}
    ?>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Récupérer image dans base de donnée
    Par semensoise dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 21/01/2009, 09h51
  2. [MySQL] Récupérer image dans base de données
    Par lelapinrusse dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 17/03/2008, 13h03
  3. Récupérer image fond jpanel
    Par scorbo dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 17/11/2007, 11h32
  4. Réponses: 4
    Dernier message: 14/09/2007, 03h50
  5. Récupérer Image depuis resource
    Par Bluedeep dans le forum C#
    Réponses: 3
    Dernier message: 02/08/2007, 16h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo