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 :

Affichage d'une image stockée dans un champ image d'une bdd sql server


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut Affichage d'une image stockée dans un champ image d'une bdd sql server
    Bonjour, je rencontre un problème pour afficher une imageà partir d'un champ image stockée dans une bdd sql server. J'ai essayé en utilisant un script mais il y a toujours un lien cassé. je sais qu'il est préférable de stocker plutôt le chemin mais je n'ai pas le choix dans ce cas de figure.

    page-1
    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
     
    <?php
    /*
    Template Name: CA
    */
     
    try {
     
        $dbh = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;dbname=$dbname;charset=french_ci_as", $username, $pw);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $dbh->setAttribute (PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING);
     
    } catch (PDOException $exception) {
        echo $exception->getMessage();
        exit;
    }
     
    /?>
        <div class="wrap">
            <h1>Notre Conseil d'administration</h1>
            <hr />
            <?php
     
     
                $retour = $dbh->prepare("SELECT COUNT(*) as nb_membre FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
        JOIN [ID143953_b4c].[dbo].[SQL_TLP] I ON P.IDPPH = I.IDPPH 
        JOIN [ID143953_b4c].[dbo].[SQL_TIE] T ON T.IDTIE = I.IDTIE
        WHERE P.FctOrg != '' AND P.Passif=0 AND I.Principal=1");
     
                $retour->execute();
                $membreparpage=30;
                $dess = $retour->fetch(PDO::FETCH_ASSOC);
                $totaldesmembre = $dess['nb_membre'];
     
                $nombredepage  = ceil($totaldesmembre/$membreparpage);
     
                echo  "<hr class='hr-left'/><div class='pagi'>";
                if (isset($_GET['pagination']) && is_numeric($_GET['pagination']) && $_GET['pagination'] > 0 && $_GET['pagination'] <= $nombredepage)
                {
                    $page = intval($_GET['pagination']);
                }
                else
                {
                    $page = 1;
                }
                if ($page > 1):
                    ?><a href="?pagination=<?php echo $page - 1; ?>"><span class="dashicons dashicons-arrow-left-alt2"></span></a> <?php
                endif;
                for ($i = 1 ; $i <= $nombredepage ; $i++)
                {
                    if($i==$page){
                        $class="active";
                    }else{
                        $class="inactive";
                    }
                    echo '<a href="?pagination=' . $i . '"class='.$class.'>' . $i . '</a> ';
                }
                if ($page < $nombredepage):
                    ?><a href="?pagination=<?php echo $page + 1; ?>"><span class="dashicons dashicons-arrow-right-alt2"></span></a><?php
                endif;
     
                echo "</div><hr class='hr-right'/>";
     
     
                $premieremembreafficher = $page* $membreparpage - $membreparpage;
     
     
     
                $reponse=$dbh->prepare("SELECT P.IDPPH,P.nom,P.Pre,P.Passif,T.IDTIE,T.Libelle,T.Secteur,P.FctEnt,P.Photo_BInaire,P.FctOrg,P.NumAdmin FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
                                                                    JOIN [ID143953_b4c].[dbo].[SQL_TLP] I ON P.IDPPH = I.IDPPH 
                                                                    JOIN [ID143953_b4c].[dbo].[SQL_TIE] T ON T.IDTIE = I.IDTIE
                                                                    WHERE P.FctOrg != '' AND P.Passif=0 AND I.Principal=1 ORDER BY P.NumAdmin ASC
    ");
     
     
                $reponse->execute();
                while ($donnees = $reponse->fetch()) {
     
                    $id=$donnees['IDPPH'];
                    ?><div class='membres entreprises'>
     
                    <?php echo '<img src="image.php?id='.$id.'" class="img-membre"/>';?>
                    <h3 class='nom'><?php echo utf8_encode($donnees['Pre']); ?> <?php echo utf8_encode($donnees['nom']); ?> </h3>
                    <p class='fct membre'><?php echo utf8_encode($donnees['FctOrg']); ?> </p>
                    <p class='ent membre'><strong>Entreprise: </strong><?php echo utf8_encode($donnees['Libelle']); ?></p>
     
     
                    </div><?php
                }
     
            $reponse->closeCursor();
     
            ?>
     
        </div>
    image.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
    26
    27
    28
    29
     
    <?php
     
     
        try {
     
     
            $dbh = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;dbname=$dbname;", $username, $pw);
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING);
            $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            $dbh->setAttribute(PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING);
     
            $reponse = $dbh->prepare('SELECT P.Photo_BInaire FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
                                                                    WHERE P.IDPPH=:id AND P.IdLibType IN(1,2,3,12)');
            $reponse->bindValue('id', $_GET['id'], PDO::PARAM_INT);
            $reponse->execute();
            $donnees = $reponse->fetch();
     
     
        } catch (EXCEPTION $e) {
     
            die('Erreur : ' . $e->getMessage());
            exit();
        }
        header('Content-Type: image/jpg');
        echo $donnees['Photo_BInaire'];
     
    ?>
    POuvez-vous m'aider svp

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Si dans ton navigateur tu appelles directement ton url image.php?id=xxxx, tu obtiens quoi ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut
    j'obtiens toujours un lien cassé

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Hein ? Qu'est ce que tu appelles un lien cassé exactement ?
    Retire le header() egalement pour le test.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2012
    Messages : 23
    Par défaut
    Je veux dire que l'image ne se charge pas, j'ai donc une croix rouge à la place de l'image. J'ai essayé en retirant le header

    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
     
    <?php
    /*
    Template Name: CA
    */
     
    try {
     
        $dbh = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;dbname=$dbname;charset=french_ci_as", $username, $pw);
        $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        $dbh->setAttribute (PDO::ATTR_ORACLE_NULLS, PDO::NULL_TO_STRING);
     
    } catch (PDOException $exception) {
        echo $exception->getMessage();
        exit;
    }
     
    /*get_header(); */?>
        <div class="wrap">
            <h1>Notre Conseil d'administration</h1>
            <hr />
            <?php
     
     
                $retour = $dbh->prepare("SELECT COUNT(*) as nb_membre FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
        JOIN [ID143953_b4c].[dbo].[SQL_TLP] I ON P.IDPPH = I.IDPPH 
        JOIN [ID143953_b4c].[dbo].[SQL_TIE] T ON T.IDTIE = I.IDTIE
        WHERE P.FctOrg != '' AND P.Passif=0 AND I.Principal=1");
     
                $retour->execute();
                $membreparpage=30;
                $dess = $retour->fetch(PDO::FETCH_ASSOC);
                $totaldesmembre = $dess['nb_membre'];
     
                $nombredepage  = ceil($totaldesmembre/$membreparpage);
     
                echo  "<hr class='hr-left'/><div class='pagi'>";
                if (isset($_GET['pagination']) && is_numeric($_GET['pagination']) && $_GET['pagination'] > 0 && $_GET['pagination'] <= $nombredepage)
                {
                    $page = intval($_GET['pagination']);
                }
                else
                {
                    $page = 1;
                }
                if ($page > 1):
                    ?><a href="?pagination=<?php echo $page - 1; ?>"><span class="dashicons dashicons-arrow-left-alt2"></span></a> <?php
                endif;
                for ($i = 1 ; $i <= $nombredepage ; $i++)
                {
                    if($i==$page){
                        $class="active";
                    }else{
                        $class="inactive";
                    }
                    echo '<a href="?pagination=' . $i . '"class='.$class.'>' . $i . '</a> ';
                }
                if ($page < $nombredepage):
                    ?><a href="?pagination=<?php echo $page + 1; ?>"><span class="dashicons dashicons-arrow-right-alt2"></span></a><?php
                endif;
     
                echo "</div><hr class='hr-right'/>";
     
     
                $premieremembreafficher = $page* $membreparpage - $membreparpage;
     
     
     
                $reponse=$dbh->prepare("SELECT P.IDPPH,P.nom,P.Pre,P.Passif,T.IDTIE,T.Libelle,T.Secteur,P.FctEnt,P.Photo_BInaire,P.FctOrg,P.NumAdmin FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
                                                                    JOIN [ID143953_b4c].[dbo].[SQL_TLP] I ON P.IDPPH = I.IDPPH 
                                                                    JOIN [ID143953_b4c].[dbo].[SQL_TIE] T ON T.IDTIE = I.IDTIE
                                                                    WHERE P.FctOrg != '' AND P.Passif=0 AND I.Principal=1 ORDER BY P.NumAdmin ASC
    ");
     
     
                $reponse->execute();
                while ($donnees = $reponse->fetch()) {
     
                    $id=$donnees['IDPPH'];
                    ?><div class='membres entreprises'>
     
                    <?php echo '<img src="image.php?id=1" class="img-membre"/>';?>
                    <h3 class='nom'><?php echo utf8_encode($donnees['Pre']); ?> <?php echo utf8_encode($donnees['nom']); ?> </h3>
                    <p class='fct membre'><?php echo utf8_encode($donnees['FctOrg']); ?> </p>
                    <p class='ent membre'><strong>Entreprise: </strong><?php echo utf8_encode($donnees['Libelle']); ?></p>
                    <a href="http://b4c.icwyt.be/membres-2/fiche-entreprise/?&idpph=<?php echo $donnees['IDPPH']; ?>" class="decouvrir membre">Découvrir</a>
    				<a href="http://b4c.icwyt.be/contacter-ca/?&idpph=<?php echo $donnees['IDPPH']; ?>" class="decouvrir membre-ca">Contacter</a>
     
     
                    </div><?php
                }
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
            $reponse->closeCursor();
     
            ?>
     
        </div>
    <?php
     
     
     
    /*get_footer();*/
     
    ?>
    image.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $dbh = new PDO("odbc:Driver=$mssqldriver;Server=$hostname;dbname=$dbname;", $username, $pw);
     
     
            $reponse = $dbh->prepare('SELECT P.Photo_BInaire FROM  [ID143953_b4c].[dbo].[SQL_PPH] P 
                                                                    WHERE P.IDPPH= :id AND P.IdLibType IN(1,2,3,12)');
            $reponse->bindValue('id', $_GET['id'], PDO::PARAM_INT);
            $reponse->execute();
            $donnees = $reponse->fetch();
     
     
        echo $donnees['Photo_BInaire'];
    Dans ma db dans le champs Photo_BInaire toutes les valeurs ressemblent à ça :FFD8FFE000104A46494600010101006000600000FFDB004300080606070605080707070909080A0C140D0C0B0B0C1912130F141D1A1F1E1D1A1C1
    (je n'ai mis qu'une partie, c'est 10x plus long)
    N'y a t'il pas un traitement à faire avant de les injecter directement dans la balise img ?

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Qu'obtiens-tu sans le header() en appellant directement la page image ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [MySQL] Afficher une image stockée dans un champs blob
    Par encoupe dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 08/11/2006, 12h00
  2. Réponses: 2
    Dernier message: 20/10/2006, 19h28
  3. Afficher une Image stockée dans un champs BLOB oracle
    Par nonaparus dans le forum Access
    Réponses: 1
    Dernier message: 18/10/2006, 08h26
  4. Ouverture d'un fichier stockée dans un champ image
    Par sat478 dans le forum Access
    Réponses: 1
    Dernier message: 08/09/2006, 18h27
  5. Réponses: 1
    Dernier message: 18/05/2006, 12h52

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