[RESOLU] Refus d'affichage après importation de données

Eléphant du PHP | 61 Messages

02 janv. 2021, 09:12

Hello tout le monde,

J'avais réussi à finaliser mon projet, mais depuis que j'ai importé des données via un CSV, là avec beaucoup de données les drapeaux ne s'affichent plus.

Donc j'ai re uploadé avec des données dont j'étais certain mais rien à faire. Les pays ne s'affichent plus :(

Dans SQL, j'ai 3 tables :
- "Lieux"
- "Pays"
- "Tags" (pas utilisée actuellement)

Les drapeaux sont récupérés via la table "Pays" via une table jonction avec "Lieux".

Code

Code : Tout sélectionner

**** ENDROITS À DÉCOUVRIR <br><br /> <?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()); } $reponse = $bdd->query('SELECT l.comte_nom, l.lieu_nom, l.pays_nom, p.flag_nom, l.lieu_url FROM lieux l LEFT JOIN pays p ON l.pays_nom = p.pays_nom LIMIT 20'); ?> <?php while ($donnees = $reponse->fetch()) { ?> <div class="vignette"> <img src="<?php echo $donnees['lieu_url']; ?>" alt="Lieu" class="imglieu"/> <div class="overlay"></div> <div class="lieu"><?php echo $donnees['lieu_nom']; ?></div> <div class="pays"><?php echo $donnees['pays_nom']; ?>, <?php echo $donnees['comte_nom']; ?></div> <img src="<?php echo $donnees['flag_nom']; ?>" alt="drapeau" class="flag"/> </div> <?php } ?>

Hypothèse1 : est-ce que tous les pays de la table doivent être utilisés pour que ca fonctionne ?
Hypothèse 2: il y a des () dans certains noms de pays; À cause de ça ?

Image table "Lieux": https://drive.google.com/file/d/1ISFwrw ... sp=sharing
Image table "Pays": https://drive.google.com/file/d/1CGGVrB ... sp=sharing
Résultat affichage actuel: https://drive.google.com/file/d/1ffwjxK ... sp=sharing

Un grand merci pour votre aide !

Mammouth du PHP | 1967 Messages

02 janv. 2021, 23:42

commence par regarder le code source de ta page, pour voir si elle cherche les drapeaux au bonne endroit.
essaie aussi ta requète sql dans phpmyadmin pour voir si elle retourne c e que tu voulais.

en régle générale, on choisi plutot un index numérique pour faire le lien entre 2 tables.
imagine la table pays avec une colonne index en auto incrément (pas besoin de t'occuper de la remplir c"est automatique) et ta table lieux contient l'index numérique correspondant au pays. le nom du pays étant aussi récupèré dans la table pays du coup.
avantage, si un pays change de nom, il ne faut le changer que à un seul endroit.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 61 Messages

03 janv. 2021, 11:31

Hello Spols :-)

Merci de ta réponse :-)

Je n'ai rien changé par rapport à la version précédente ou tout fonctionnait.
J'ai juste importé la liste de tous les pays.

J'ai fait la requête dans PHP My Admin et c'est ok.
Il va bien chercher tout ce dont j'ai besoin:

voir ici: https://drive.google.com/file/d/1TnYtGO ... sp=sharing

Je me demande si c'est parce que je n'utilise pas tous les pays de la liste ?
Je vais refaire un test ou je ne prends que 2 pays.

Ca permettra d'éliminer des hypothèses.

Si tu as d'autres pistes je suis preneur !

Merci !!!

Oui je sais mais comme il y a peu de chances qu'un pays change de nom j'ai fait comme ça ;-)

Eléphant du PHP | 61 Messages

03 janv. 2021, 11:35

Spols, j'ai trouvé !!! :D
Ca m'a fait re regardé ma table et regarde, il n'y a pas de chemin pour l'extension des pays !!!! #-o
Si frustrant le développement !!! :twisted:
Bref merci à toi !

Eléphant du PHP | 61 Messages

03 janv. 2021, 14:23

C'était trop beau pour être vrai !!! #-o
J'ai donc après ce que j'ai dis dans mon message précédent remplacé tous les nom de la colonne avec le "path" du fichier.
Et ca ne fonctionne plus. Les drapeaux ne veulent plus s'afficher.
Par contre cette fois ci j'ai fait la requête que tu as dit et il affiche "NULL".
voir image: https://drive.google.com/file/d/1RJtXZU ... sp=sharing
Or je n'ai pas changé le "path" et je suis sur du "path".
Voir ici: https://drive.google.com/file/d/1yVXhNd ... sp=sharing
Une idée ? :cry:

Mammouth du PHP | 1967 Messages

03 janv. 2021, 15:09

si ta requète retourne Null il faut travailler dessus pour corriger cela en premier.

pour le path, tu peux le mettre en relatif ou absolu, utilise les outils de ton navigateur ctrl +shift + i pour voir ce qu'il tente de charger
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 61 Messages

04 janv. 2021, 14:57

Salut Spols,
L'ordre de la colonne "Lieux" et "Pays" étaient inversées #-o
Donc sur de faire correspondre pays avec pays.
C'est réglé !
Je vais attaquer maintenant la pagination automatique :priere:
Merci de ton aide !!!