Problème galerie d'image Mysql, PHP PDO. [Résolu/Fermé]

Signaler
Messages postés
106
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
7 janvier 2014
-
Messages postés
106
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
7 janvier 2014
-
Bonjour,

Voici déjà maintenant 1 bon mois que j'essaye de résoudre un problème via les tutoriels et les cours.
J'aimerais créer une galerie d'image en utilisant des informations qui proviennent d'une base de donnée avec PHP (en PDO pour des raison de code plus récent x) autant apprendre le dernier langage).
Voici ma première page de code :
(connexiondessins.inc.php)

<?php
try
{
    $bdd = new PDO('mysql:host=localhost;dbname=nom_bdd;charset=utf8', 'users', 'mdp', array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'/*, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION*/));
}
catch (Exception $e)
{
        die('Erreur : ' . $e->getMessage());
}
?> 


sps.php

<?php
require_once("connexiondessins.inc.php");
$reponse = $bdd->query('SELECT categorie,titre,image,description FROM dessins WHERE categorie="sps" ORDER BY id DESC');
?>
<!DOCTYPE HTML>
<html>
<link href="mafavicon.png" rel="shortcut icon" title="crobara2bal" type="image/png" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="description" content="Tout les dessins humouristique sur le SPS en bande dessinée. Ici !" />
<title>S.P.S / Toutes les catégories de dessins, crobar, B.D, sur le S.P.S</title>
<link href="css1.css" rel="stylesheet" type="text/css">
</head>
  
<body>
<div id="container">
<?php include("header.inc.php"); ?>
<?php include("menus.inc.php"); ?>
<div id="corpssps">
<a href="dessins.php" title="retourner aux catégories"><h2 class="titrevignette1">Catégories</h2></a>
<a href="sps.php" title="recharger la page"><h1 class="titre1">S.P.S</h1></a>
 <div id="textesps">
 <p class="texte2">blablabla...</p>
 </div>
  
 <?php while ($dessins = $reponse->fetch())
 {
 ?>
<div class="cat1">
  <?php echo '<span class="classtext1v">'.$dessins['categorie'].'</span>'; ?>
  <br />
  <?php echo '<span class="classtext2v">'.$dessins['titre'].'</span>'; ?>
  <br />
  <a href="selectionsps.php?categorie=<?php echo $dessins['categorie']; ?>&amp;titre=<?php echo $dessins['titre']; ?>&amp;titre=<?php echo $dessins['description']; ?>&amp;image=<?php echo $dessins['image']; ?>"><img src="images/<?php echo $dessins['image'];?>" width="200" height="250" /></a>
</div>
<? } $reponse->closeCursor(); ?>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>
</html>


et voici ma page votreselectiondessinsps.php

<?php
require_once("connexiondessins.inc.php");
$req = $bdd->prepare('SELECT descriptif FROM dessins WHERE id="'.$_GET['id'].'"');
$req->execute();
$data = $req->fetch(PDO::FETCH_ASSOC);
?>
<!DOCTYPE HTML>
<html>
<link rel="shortcut icon" title="crobara2bal" type="image/png" href="mafavicon.png" />
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>SPS / voir</title>
<link href="css1.css" rel="stylesheet" type="text/css">
</head>
  
<body>
<div id="container">
<?php include("header.inc.php"); ?>
<?php include("menus.inc.php"); ?>
<div id="corpssports">
<a href="dessins.php" title="retourner aux catégories"><p class="titrevignette1">Catégories</p></a>
<a href="sps.php" title="recharger la page"><h1 class="titre1">S.P.S</h1></a>
  
 <div id="textesports">
<?php echo '<span class="classtext1v">'.stripslashes($_GET['categorie']).'</span>'; ?>
<br />
<?php echo '<span class="classtext2v">'.stripslashes($_GET['titre']).'</span>'; ?>
<br />
<?php echo '<span class="classtext5v">'.stripslashes($_GET['description']).'</span>'; ?>
<br />
<?php echo '<span class="classtext5v">'.stripslashes($_GET['descriptif']).'</span>'; ?>
 </div>
  
  <br />
 <img src="images/<?php echo $_GET['image']; ?>" width="800px" height="auto"/>
</div>
<?php include("footer.inc.php"); ?>
</div>
</body>
</html>


Pour expliquer mon soucis plus facilement, voici le site que je crée : ( actuellement en ligne ) www.crobara2bal.com

Lorsque j'accède à ma la page 'dessins' jusqu'à là aucun soucis, je séléctionne une catégorie au hasard ( comme exemple, sps )

Lorsque je suis dans ma page sps, il n'y a pas de soucis, tout s'affiche correctement, mais lorsque séléctionne un dessins au hasard de la catégorie sps,

certaines informations de plusieurs vingnette dessin sps n'affiche la description qu'à moitié ou pas du tout, pour les images le même problème, elle s'affiche une fois sur deux et mon titre ne s'affiche pas du tout.

Le $_GET m'avait été conseillé pour transférer les informations des vignettes de la bdd de la page sps.php, à ma page selectionsps.php sans avoir à créer une nouvelle page php pour chaque dessins.

Voici la structure de ma base de donnée "dessins" ou sont inséré toutes mes infos ( catégorie, titre, image, description, etc..)

-- Structure de la table 'dessins'
--
  
CREATE TABLE IF NOT EXISTS 'dessins' (
  'id' int(11) NOT NULL AUTO_INCREMENT,
  'categorie' varchar(100) NOT NULL,
  'titre' varchar(100) NOT NULL,
  'image' varchar(100) NOT NULL DEFAULT 'formationspsv.jpg',
  'description' text NOT NULL,
  PRIMARY KEY ('id'),
  UNIQUE KEY 'id' ('id')
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=77 ;


urais vraiment besoin d'un coup de pouce pour avancer :s, je pense que mon code n'est pas bien rédigé et qu'il y à beaucoup d'erreur, je ne sais pas les situées et par quoi les remplacer, d'un tutoriels à un autre les techniques varies et je me perd totalement dans les explications...
(Si il vous est possible de me montrer des exemples visuels du code à corriger, il et toujours plus facile de comprendre avec un exemple )
Merci pour votre attention et votre aide.
Sincèrement.

2 réponses

Messages postés
816
Date d'inscription
mercredi 20 février 2013
Statut
Membre
Dernière intervention
24 novembre 2018
91
Salut salut,

Alors à première vue je ne pense pas que ce soit un problème de bdd, par contre en cliquant sur quelques images je vois les commentaire..s mais pas les images. En regardant le code que tu as posté et celui de ton site j'ai pu voir un comportement un peu bizarre.

Dans le code que tu as posté, il y a une ligne du genre :
<img src="images/<?php echo $_GET['image']; ?>" width="800px" height="auto"/>


Or en ligne lorsqu'on regarde le code html sur un page où l'image n'apparait pas on peut voir :
<img imageselect"="" src="images/<span class=">
" width="800px" height="auto"/>

La balise img est fermé avec le chevron que suit "<span class="". La source n'est pas identifiée et l'image n'apparait pas.

Je pense que c'est lorsque tu lui passe la variable $_GET['image'], vérifie le contenu de cette variable avant qu'elle n'entre dans la balise img .
Messages postés
106
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
7 janvier 2014

Bonjour, Merci pour ton intérêt à mon soucis :),
Autant pour moi, concernant le code du site en ligne, je fait plusieur modification pour comprendre et essayer de résoudre le problème ( j'ai remis la page avec ma ligne <img src="images/<?php echo $_GET['image']; ?>" width="800px" height="auto"/> )
Messages postés
106
Date d'inscription
jeudi 7 mars 2013
Statut
Membre
Dernière intervention
7 janvier 2014

Bonjour, voici la solution si sa peut en aider certains qui serait dans la même situation :

Ma page divers.sps :

<?php 
require_once("connexiondessins.inc.php");
$reponse = $bdd->prepare('SELECT id,categorie,titre,image,description FROM dessins WHERE categorie="divers" ORDER BY id DESC');
$reponse->execute();
?>
<?php while ($dessins = $reponse->fetch()) { ?>
<div class="cat1">
  <?php echo '<span class="classtext1v">'.htmlspecialchars($dessins['categorie']).'</span>'; ?>
  <br />
  <?php echo '<span class="classtext2v">'.htmlspecialchars($dessins['titre']).'</span>'; ?>
  <br />
  <a href="selectiondivers.php?id=<?php echo htmlspecialchars($dessins['id']); ?>"><img src="images/<?php echo htmlspecialchars($dessins['image']);?>" width="200" height="250" /></a>
</div>
<? } $reponse->closeCursor(); ?>


ma page selectiondivers.sps :

<?php 
require_once("connexiondessins.inc.php");
$req = $bdd->prepare('SELECT categorie,titre,image,description FROM dessins WHERE id="'.$_GET['id'].'"');
$req->execute($data);
$data = $req->fetch(PDO::FETCH_ASSOC);
?>
<div id="texteselection">
<?php echo '<span class="classtext1v">'.htmlspecialchars($data['categorie']).'</span>'; ?>
<br />
<?php echo '<span class="classtext2v2">'.htmlspecialchars($data['titre']).'</span>'; ?>
</div>
<div id="ajustementdescription">
<?php echo '<span class="classtext5v">'.htmlspecialchars($data['description']).'</span>'; ?>
 </div>
  <div id="ajustementimage">
 <img src="images/<?php echo htmlspecialchars($data['image']); ?>" width="800px" height="auto"/>
  </div>


Voilà :) tout fonctionne.