[RESOLU] [Projet voyage perso] Quel code HTML / méthode utiliser pour afficher correctement les infos venant de SQL ?

Eléphant du PHP | 61 Messages

16 déc. 2020, 19:48

Hello tout le monde,

Je voudrais créer un site qui rassemble tous les lieux les plus chouettes à découvrir sur notre petite planète :-)

Voici le design du dit projet: https://drive.google.com/file/d/1sgz1na ... sp=sharing

Je suis en plein développement :D
J'arrive à afficher des données de SQL dans un rectangle (div) mais je comprends pas comment le mettre en forme depuis le HTML.

Voici à quoi ressemble la partie du code où je vais chercher les données:

Code : Tout sélectionner

<div class="vignette"> <?php try { // On se connecte à MySQL $bdd = new PDO('mysql:host=localhost;dbname=visitearth;charset=utf8', 'root', 'root'); } catch(Exception $e) { // En cas d'erreur, on affiche un message et on arrête tout die('Erreur : '.$e->getMessage()); } // Si tout va bien, on peut continuer // On récupère tout le contenu de la table Lieux $reponse = $bdd->query('SELECT Flag, Lieu, Pays, Ville FROM Lieux WHERE ID=1'); // On affiche chaque entrée une à une while ($donnees = $reponse->fetch()) { ?> <p> <?php echo $donnees['Flag']; ?><br /> <?php echo $donnees['Lieu']; ?><br /> <?php echo $donnees['Pays']; ?><br /> <?php echo $donnees['Ville']; ?><br /> </p> <?php } $reponse->closeCursor(); // Termine le traitement de la requête ?> </div> </body> </html>
Comment est-ce que je fais pour donner des instructions CSS à cette partie ?
Un grand merci pour votre aide !!!

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

16 déc. 2020, 19:59

En spécifiant une class.

Mais là ce sont les bases du CSS... il faudrait déjà que tu suives quelques tuto et que tu te renseignes par toi même pour comprendre le minimum du fonctionnement des CSS.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

17 déc. 2020, 09:40

Hello @rthur,
merci pour ton aide (encore une fois :) ).
J'ai des connaissances de base en CSS.
Ce que je ne comprends pas c'est OU mettre la classe dans la portion du code ?
@Ryle m'a donné un raccourci pour mon code ici :

Code : Tout sélectionner

<select name="pays"> <?php $reponse = $bdd->query('SELECT id_pays, libelle FROM pays ORDER by libelle'); while ($donnees = $reponse->fetch()) { echo '<option value="' . $donnees['id_pays'] . '">' . $donnees['libelle '] . '</option>' } ?> </select>
Dans ce code, ou ajouter un calsse pour que chaque vignette ait le meme look and feel ?
Merci !

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

17 déc. 2020, 15:44

Ce code n'affiche pas des vignettes mais une liste déroulante...

Fais ce que tu veux en HTML+CSS pur déjà (sans PHP), et après tu ajouteras ton code PHP pour rendre cela dynamique.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 61 Messages

17 déc. 2020, 16:02

Ok je comprends @rthur.
Rien de compliqué en html / CSS. Je peux créer les 16 vignettes vides.
Mais je ne comprends pas comment on fait du coup avec php pour aller chercher dans chaque case (vignette) le titre du lieu, le pays, la ville et la drapeau du pays dans SQL. Pour chaque div je vais devoir lui dire :"va chercher id 1 pour la vignette 1, puis id 2 pour la vignette 2 ? J'ai 1300 lieux. No way que je fasse ca :p
Merci de ton aide.

Mammouth du PHP | 2703 Messages

17 déc. 2020, 16:10

le code fait déjà le job avec
while ($donnees = $reponse->fetch())

pour les modos, ce serait mieux de ne pas avoir 2 discussions sur le même sujet en parallèle.

Eléphant du PHP | 61 Messages

17 déc. 2020, 21:45

Mais... je ne comprends pas.
Tu viens de me dire que ca faisait une liste déroulante ??? :roll:

Bref, du coup, OU EST CE QUE J'INSERE le code dans la boucle (pour autan,t que ce soit la que je doive la mettre) pour dire que je veux que la vignette ressemble à CECI (voir design).

MERCI :)

ps: À ma défense ce sont 2 questions assez différentes :)

Mammouth du PHP | 2703 Messages

17 déc. 2020, 21:48

$reponse = $bdd->query('SELECT Flag, Lieu, Pays, Ville FROM Lieux WHERE ID=1');
// On affiche chaque entrée une à une
while ($donnees = $reponse->fetch())
{
?>
<p>
<?php echo $donnees['Flag']; ?><br />
<?php echo $donnees['Lieu']; ?><br />
<?php echo $donnees['Pays']; ?><br />
<?php echo $donnees['Ville']; ?><br />
</p>
<?php
}
$reponse->closeCursor(); // Termine le traitement de la requête

il y a bien un while dans ce code.

Eléphant du PHP | 61 Messages

17 déc. 2020, 22:14

Oui mais ca ne fonctionne pas, il va me rechercher toutes les infos dans la meme vignette.
Or, je voudrais qu'il remplisse chaque vignette.

Mammouth du PHP | 2703 Messages

17 déc. 2020, 22:20

la raison a été donnée dans l'autre discussion.