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

Langage PHP Discussion :

Affichage d'une image récupérée


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 25
    Par défaut Affichage d'une image récupérée
    Bonjour à tous je suis débutant en php et actuellement j'arrive pas à avancer. Je dois récupérer des actualités dans une BDD en faisant une pagination (jusque là tout va bien). Chaque actu est présentée sous la forme suivante : image de l'actu, titre date et description.

    J'arrive à bien afficher titre date et description car toutes ces info se trouvent dans une même table mais mon souci vient lorsque je veux afficher l'image. Les images se trouvent dans une table media. J'ai un back office qui me permet d'ajouter des actu dans la base et lors de la création d'une actu je peux insérer une image et c'est cette image que j'aimerais afficher.

    Voici le code :

    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
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    <?php 
    	include("includes/config.inc.php");
    	include("includes/class.logement.php");
     
     
    	$monActualite = new Actualite ();
    	$fooActu = $monActualite->getActualite();//on prend la derniere actualite
    	$actu = $fooActu; //assignement de l'objet 0 dans actu ( notre derniere actualite)
     
     
    	$maCategorie = new Categorie();
    	$fooCategories=$maCategorie->getCategorie("*","","id_categorie ASC");
     
    				// Original PHP code by Chirp Internet: www.chirp.com.au
    // Please acknowledge use of this code by including this header.
     
    function myTruncate($string, $limit, $break=".", $pad="...")
    {
      // return with no change if string is shorter than $limit
      if(strlen($string) <= $limit) return $string;
     
      // is $break present between $limit and the end of the string?
      if(false !== ($breakpoint = strpos($string, $break, $limit))) {
        if($breakpoint < strlen($string) - 1) {
          $string = substr($string, 0, $breakpoint) . $pad;
        }
      }
     
      return $string;
    }
     
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title></title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<meta name="description" content="" />
    		<?php include("include/scripts.php"); ?>
    		<script type="text/javascript"></script>
    	</head>
    	<body>
    		<div id="page">
    			<!-- Début de l'include "header" -->
    			  <?php include("include/header.php"); ?>
    			<!-- Fin de l'include "header" -->
    			<div id="contenu-actu">
     
    				<h3 style="text-align:center;margin-bottom:50px;">Nos actualités</h3>
     
    			<?php
    				try
    				{
    					$bdd = new PDO('mysql:host=localhost;dbname=**', '**', '**',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    				}
    				catch (Exception $e)
    				{
    					die('Erreur : ' . $e->getMessage());
    				}
     
     
    				$messagesParPage = 5;
    				$retour = $bdd->query('SELECT COUNT(*) AS nb_messages FROM actualite');
    				$donnees = $retour->fetch();
    				$totalDesMessages = $donnees['nb_messages']; //total des messages vaut le nb de messages
     
    				// On calcule le nombre de pages à créer
    				$nombreDePages  = ceil($totalDesMessages / $messagesParPage);
    				if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    				{
    					$pageActuelle=intval($_GET['page']);
     
    					if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
    					{
    						$pageActuelle=$nombreDePages;
    					}
    				}
    				else // Sinon
    				{
    					 $pageActuelle=1; // La page actuelle est la n°1    
    				}
    				$premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
     
    				// La requête sql pour récupérer les messages de la page actuelle.
    				$retour_messages=$bdd->query('SELECT * FROM actualite ORDER BY id_actualite DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
     
    				/***************************************RECUPERATION DE L'IMAGE********************************************/
     
    				/*foreach ($fooActu as $actu) 
    				{*/
    					$monMedia = new Media();
    					$fooMedia=$monMedia->getMedia("*","id_classe_media = '".$actu['id_actualite']."' AND classe_media = 'actualite'");
    					//$media = $fooMedia[0];
    					$media = array();
    					if (isset($fooMedia[0]) > 0) $media = $fooMedia[0];		
    					$idmedia = (isset($fooMedia[0]['id_classe_media'])) ;
    					//echo $media['fichier_media'];
    					/*if ($idmedia == NULL)
    								{
    									
    									echo '<img src="back/medias/temp.png" width="140" alt="" name="search_thumbnail" id="search_thumbnail"/>';
    				
    								} 
    								else 
    								{ 
    									?><img src="back/medias/<?php if (isset($media['fichier_media'])) echo $media['fichier_media']; ?>" width="140"  border="0" style="border:solid 1px #CCCCCC"/><?php
    								} 
     
    								echo '</div>';*/
    				//}
     
    				/**********************************************************************************************************/
     
    					while($donnees_messages=$retour_messages->fetch(PDO::FETCH_ASSOC)) // On lit les entrées une à une grâce à une boucle
    					{
     
     
     
    						 echo ' <div class="slider">
    								<div class="full-actu">
    								<div class="actu-img">';
     
    								/*if ($idmedia == NULL)
    								{
    									echo "salut";
    									echo '<img src="back/medias/temp.png" width="140" alt="" name="search_thumbnail" id="search_thumbnail"/><?php
    				
    								} 
    								else 
    								{ 
    									*/?><img src="back/medias/<?php if (isset($media['fichier_media'])) echo $media['fichier_media']; ?>" width="140"  border="0" style="border:solid 1px #CCCCCC"/><?php
    								//} 
     
    								echo '</div>
    						
    								<div class="actu-desc">
    								<strong><h1 class="actu-titre">'.$donnees_messages['titre_actualite'].'</h1></strong></td>
    								<p class="actu-date">Publié le : '.nl2br($donnees_messages['date_actualite']).'</p>
    								'.$donnees_messages['description_actualite'].'
    								</div></div></div>';
     
     
    					}
    								// Puis on fait une boucle pour écrire les liens vers chacune des pages
    				echo 'Page : ';
    				for ($i = 1 ; $i <= $nombreDePages ; $i++)
    				{
    					 if($i==$pageActuelle) //Si il s'agit de la page actuelle...
    					 {
    						 echo ' [ '.$i.' ] '; 
    					 }	
    					 else //Sinon...
    					 {
    						  echo ' <a href="liste_actualite.php?page='.$i.'">'.$i.'</a> ';
    					 }
     
    				}
    				echo '</p>';
    			?>
     
     
    		</div>
    		</div>
    		<!-- Début de l'include "Footer" -->
    		  <?php include("include/footer.php"); ?>
    		<!-- Fin de l'include "Footer" -->
    	</body>
    </html>
    Voila je sais pas si j'ai été assez clair mais je desespère ... Bonne journée

    ps : Il y a pas mal de commentaires car j'ai essayé de faire des tests

  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
    Tu dois faire une requête sur cette table media.
    Quel est le problème ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 25
    Par défaut
    Salut Sabotage et merci pour ta réponse, mon problème serait de formuler cette requête car je saurais pas comment associer la partie media et la partie actu, car via le back-office quand j'ajoute une actu elle va dans la table actu et lorsque je veux ajouter une image à cette actu (toujours via le back-office), cette image se trouve dans un dossier img et toutes les images se trouvent dans la table media.

    Le fait que l'image et la l'actu aient pas la même table me perturbe un peu et je sais pas comment faire pour faire cette requête.

    (Petite précision c'est un projet que j'ai récupéré et que je dois finir du coup comme je débute j'ai un peu de mal et le fait de m'imprégner et comprendre le travail des précédents devs).

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Notre problème à nous, ça va être de t'aider car tu donnes le code de tout ton projet, sauf celui en rapport avec ton problème !
    On ne connait pas la structure des tes bases ni comment tu les interroge.

    Ceci dit, à priori, une jointure toute bête devrait faire l'affaire, le tout étant de savoir le lien entre elles.
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2014
    Messages : 25
    Par défaut
    Bonjour à tous, bonne année et merci pour vos réponses.

    Excusez moi de relancer ce topic, j'ai dû m'absenter quelques temps ... Si quelqu'un repasse par ici et pour Bovino si tu es toujours ici j'ai une base et les 2 tables qui me servent sont la table actualite et la table media.

    Voici le contenu de ces 2 tables :

    -Table actualite : id_actualite type_actualite date_actualite titre_actualite description_actualite
    -Table media : id_media id_classe_media classe_media titre_media description_media date_media type_media fichier_media categorie_media ordre_media

    Le lien entre les 2 tables se fait via id_actualite et id_classe_media de ce que j'ai compris.

    En fait j'ai repris un projet en cours et je dois réaliser la pagination des articles en affichant 5 articles par page : ça j'ai réussi à faire mais sans afficher les images.

    Et ceux qui étaient avant sur le projet ont réussi à afficher tous les articles avec les bonnes images mais il y a pas de pagination.

    Du coup j'ai essayé de faire quelques tests mais sans succès car je débute en php et il m'est difficile d'assimiler du php avancé. J'ai vu qu'ils avaient fait une boucle pour se faire et j'ai aussi utilisé une boucle pour lire tous les articles de ma table. En gros j'aimerais une "fusion" de nos codes pour qu'avec ma pagination je puisse afficher articles + images.

    Voici mon code (pagination + affichage des articles mais sans images) :

    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
    try{
    	$bdd = new PDO('mysql:host=localhost;dbname=****', 'root', '',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
    }
    catch (Exception $e){
    	die('Erreur : ' . $e->getMessage());
    }
    $messagesParPage = 5;
    $retour = $bdd->query('SELECT COUNT(*) AS nb_messages FROM actualite');
    $donnees = $retour->fetch();
    $totalDesMessages = $donnees['nb_messages']; //total des messages vaut le nb de messages
    // On calcule le nombre de pages à créer
    $nombreDePages  = ceil($totalDesMessages / $messagesParPage);
    if(isset($_GET['page'])){ // Si la variable $_GET['page'] existe...
    	$pageActuelle=intval($_GET['page']);
    	if($pageActuelle>$nombreDePages){ // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
    		$pageActuelle=$nombreDePages;
    	}
    }
    else{ // Sinon
    	$pageActuelle=1; // La page actuelle est la n°1    
    }
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
    // La requête sql pour récupérer les messages de la page actuelle.
    $retour_messages=$bdd->query('SELECT * FROM actualite ORDER BY id_actualite DESC LIMIT '.$premiereEntree.', '.$messagesParPage.'');
    while($donnees_messages=$retour_messages->fetch(PDO::FETCH_ASSOC)){ // On lit les entrées une à une grâce à une boucle
    	echo ' <div class="slider">
    		<div class="full-actu">
    		<div class="actu-img"><img src="back/medias/temp.png" width="140" alt="" name="search_thumbnail" id="search_thumbnail"/></div>';
    	echo '<div class="actu-desc">
    		<strong><h1 class="actu-titre">'.$donnees_messages['titre_actualite'].'</h1></strong></td>
    		<p class="actu-date">Publié le : '.nl2br($donnees_messages['date_actualite']).'</p>
    		'.$donnees_messages['description_actualite'].'
    		</div></div></div>';
    }
    // Puis on fait une boucle pour écrire les liens vers chacune des pages
    echo 'Page : ';
    for ($i = 1 ; $i <= $nombreDePages ; $i++){
    	if($i==$pageActuelle){ //Si il s'agit de la page actuelle...
    		echo ' [ '.$i.' ] '; 
    	}	
    	else{ //Sinon...
    		echo ' <a href="liste_actualite.php?page='.$i.'">'.$i.'</a> ';
    	}
    }
    echo '</p>';
    ?>
    Et voici le leur (affichage de tous les articles avec les images correspondantes) :

    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
    <?php 
    foreach ($fooActu as $actu) {
    	$monMedia = new Media();
    	$fooMedia=$monMedia->getMedia("*","id_classe_media = '".$actu['id_actualite']."' AND classe_media = 'actualite'");
    	//$media = $fooMedia[0];
    	$media = array();
    	if (isset($fooMedia[0]) > 0) $media = $fooMedia[0];		
    ?>
    <div class="full-actu">
    <div class="actu-img">
    <?php 
    	$idmedia = (isset($fooMedia[0]['id_classe_media'])) ;
    	if ($idmedia == NULL){?>
    <img src="back/medias/temp.png" width="140" alt="" name="search_thumbnail" id="search_thumbnail"/>
    <?php 
    	}
    	else {?>
    <img src="back/medias/<?php if (isset($media['fichier_media'])) echo $media['fichier_media']; ?>" width="140"  border="0" style="border:solid 1px #CCCCCC"/></a> 
    <?php 
    	}
    ?>
    </div>
    <h1 class="actu-titre"><?php echo $actu['titre_actualite']; ?></h1>
    <p class="actu-date"><?php echo 'Publié le ' .$actu['date_actualite']; ?></p>
    <?php 
    	$actu = strip_tags(html_entity_decode($actu['description_actualite'],  $flags = ENT_COMPAT | ENT_HTML401 ,  $encoding = 'iso-8859-1')); 
    	$shortdesc = myTruncate($actu, 100, " ");
    	echo "<p>$shortdesc</p>";
    ?>
    </div>
    <?php }?>
    Je vous remercie, bonne journée

Discussions similaires

  1. Réponses: 2
    Dernier message: 07/12/2011, 17h14
  2. Réponses: 2
    Dernier message: 27/12/2004, 10h23
  3. Pbs d'affichage d'une image sur un panel
    Par ysr1 dans le forum C++Builder
    Réponses: 2
    Dernier message: 23/09/2004, 10h55
  4. [FLASH MX] Qualité d'affichage d'une image
    Par n_tony dans le forum Flash
    Réponses: 3
    Dernier message: 16/08/2004, 10h44
  5. Affichage d'une image sous linux
    Par Braim dans le forum x86 32-bits / 64-bits
    Réponses: 5
    Dernier message: 25/03/2003, 11h41

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