Base de données

Résolu
Kelsilver - Modifié par NHenry le 6/11/2016 à 16:07
 Kelsilver - 6 nov. 2016 à 21:59
Bonsoir !
J'ai créé un site web. J'ai lui créé une base de données avec PhpMyAdmin. Le problème que j'ai, le voici. Quand je fais l'affichage des données à partir de la base de données vers mes pages, seuls les champs dont le contenu n'est pas long s'affiche. Les champs de Varchar s'affichent lorsque leur valeur n'est pas longues. Le plus dur c'est lorsque le champ est de type text. Leur affichage ne marche pas sur mes pages. A leur place, j'ai seulement une espace vide. Mais, s'il s'agit d'une image, tout s'affiche bien. Voici le code source que j'utilise pour afficher mes données depuis la base de données :


<?php
 include('connexion_db.php');
 reponse = $bdd->query("SELECT id_info, titre_info, description_info, date_info, photo_info   
 FROM infos
 WHERE id_info=1 
");
?>
<?php while ($donnees = $reponse->fetch()) { ?>
 <!-- Fin PHP infos -->
<div style="box-shadow:2px 2px 2px 2px #bebebe;background-color:#333366;color:#fff;font-family:;font-size:18px;text-align:center;font-weight:bolder;"><?php echo htmlspecialchars($donnees['titre_info']); ?></div>
   <section width=30% style="border-bottom:5px solid #333366;border-left:2px solid #bebebe;border-right:2px solid #bebebe;border-top:2px solid #bebebe;
           font-size:15px;vertical-align:top;border-radius:10px;box-shadow:1px 1px 1px #bebebe;padding:8px;">
    <img src="publications/<?php echo htmlspecialchars($donnees['photo_info']); ?>" width=100% height="auto" style="" title="<?php echo htmlspecialchars($donnees['titre_info']); ?>" alt="<?php echo htmlspecialchars($donnees['titre_info']); ?>"/>
    <p  style="color:;font-size:18px;padding-top:;padding-bottom:;width: 320px;height: 110px;text-align: justify;border: 1px solid #333366;overflow: auto;">
     <?php echo htmlspecialchars($donnees['description_info']); ?>
    </p>
    <span style="color:#CC0000;font-style:italic;">
     <?php echo htmlspecialchars($donnees['date_info']); ?>
    </span>
    <p style="color:#fff;font-size:16px;background-color:#333366;width:100px;">
     <a href="pages/detail_info.php?id_info=<?php echo htmlspecialchars($donnees['id_info']); ?>" style="text-decoration:none;color:#fff;font-size:16px;background-color:#333366;"> 
     Lire la suite ...</a>
    </p>
   </section>
   <?php  } $reponse->closeCursor(); ?>
   <br/>



<--! Comentaire -->
Comment faire pour afficher toutes mes données de ma base de données dont les champs de différents types ?
Si la valeur que contient un champ est longue, son contenu ne s'affiche pas. Peu importe son type. Sauf les images s'affichent correctement.
JE ne sais pas si le problème vient de mes codes sources ou d'alleurs.
Aidez-moi à trouver une solution à mon problème.

Merci

4 réponses

jordane45
Messages postés
35814
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
358
1 nov. 2016 à 10:44
Bonjour
Tu peux nous donner un dump de ta table ou au moins sa structure structure ?

0
Table : infos
id_info : int(11) AUTO_INCREMENT
titre_info : varchar(250) latin1_swedish_ci
description_info : text latin1_swedish_ci
photo_info : varchar(250) latin1_swedish_ci
date_info : timestamp CURRENT_TIMESTAMP


Tout marche bien en local sur mon ordinateur. Mais quand j'envoie tout sur le serveur, le problème revient. J'utilise PhpMyAdmin 4.5.1 et mon serveur utilise 4.4.13.1
J'exporte mes tables vers de PhpMyAdmin 4.5.1 vers PhpMyAdmin 4.4.13.1 sur le serveur. Je ne sais pas s'il y a un problème à ce niveau.

Merci de m'aider.
Merci d'avance Jordane45
0
NHenry
Messages postés
14944
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
161
6 nov. 2016 à 16:10
Pour info la base de données n'est pas PhpMyAdmin, mais MySql.

Ensuite, htmlspecialchars attends souvent de l'UTF-8, si le texte contient des caracètres non UTF-8 (ou de la page de code définie par le serveur), cela fait que la fonction retourne rien.

Essayes sans le htmlspecialchars pour voir, si ça fonctionne, c'est que l'encodage n'est pas bon.
0
Merci NHenry
Tout marche bien maintenant.
J'ai enlevé les htmlspecialchar. Et tout est OK
Grand merci
0
NHenry
Messages postés
14944
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 juillet 2022
161
6 nov. 2016 à 21:25
Attention tout de même, le htmlspecialchars permet d'échapper les caractères et éviter une injection de code HTML/JS.
Je te recommande de faire en sorte que l'encodage soit le bon.
0
Ok
Merci, je vais le faire.
Grand merci
0