Problème pour auto-remplir des champs à partir d'entrées de BDD

Petit nouveau ! | 1 Messages

13 déc. 2016, 02:29

Bonjour à tous,

Je suis en train de coder un petit fichier PHP pour un projet scolaire. Le but est d'utiliser mes entrées de BDD pour remplir automatiquement les champs de l'index de mon site. Je voulais trouver un script pas trop compliqué qui puisse me permettre de garder mon site viable même lors de mises à jour de mes bases, mais visiblement je coince quelque part.

Je n'ai visiblement pas d'erreurs, le site fonctionnant bien mais ne me retournant aucune création de petites vignettes pour mes différentes entrées. Je vous laisse le code, si vous avez une petite d'idée d'où le problème peut venir, je suis preneur.

Code : Tout sélectionner

<? $link = mysqli_connect('localhost', 'root', 'root', 'ResidencesEtudiantes'); if ( ! $link ) die ("connection impossible"); $bdd_name = "fichesresidences"; $page = $_GET["page"]; if(!$page) $page = 1; $debut = ($page-1) * 12; $liste = array(); $requete = "SELECT Reference,Nom,Photo FROM $bdd_name LIMIT 12 OFFSET $debut"; $resultats = mysqli_query($session,$requete); while (mysqli_num_rows( $resultats ) > 0 && ($ligne = mysqli_fetch_row($resultats))) { $element = array(); $element["Reference"] = $ligne[0]; $element["Nom"] = $ligne[1]; $element["Photo"] = $ligne[2]; array_push( $liste , $element ); } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Résidences</title> <!-- Bootstrap CSS --> <link href="css/bootstrap.css" rel="stylesheet"> <!-- Custom CSS --> <link href="css/style.css" rel="stylesheet"> </head> <body> <nav class="navbar navbar-inverse navbar-fixed-top" role="navigation"> <div class="container"> <a class="navbar-brand" href="index.php">Titre du site</a> </div> </nav> <div class="container"> <div class="row"> <div class="col-lg-12"> <h1 class="page-header"> Liste des Résidences </h1> </div> </div> <div class="row"> <? foreach ($liste as $key => $value) { ?> <div class="col-md-3 portfolio-item"> <a class="item" href="localhost:8888/Residences/Fiches.php?id=<? echo($value[0]); ?>"> <img class="img-responsive" src="<?php echo($value[2]); ?>" alt=""> <div class="textes"> <div class="resName"><? echo($value[1]); ?></div> </div> </a> </div> <? } ?> </div> <hr> <!-- Pagination --> <div class="row text-center"> <div class="col-lg-12"> <ul class="pagination"> <li id="page1"><a href="index.php?page=1">1</a></li> <li id="page2"><a href="index.php?page=2">2</a></li> <li id="page3"><a href="index.php?page=3">3</a></li> <li id="page4"><a href="index.php?page=4">4</a></li> <li id="page5"><a href="index.php?page=5">5</a></li> <li id="page6"><a href="index.php?page=6">6</a></li> <li id="page7"><a href="index.php?page=7">7</a></li> </ul> </div> </div> </div> <!-- jQuery --> <script src="js/jquery.js"></script> <!-- Bootstrap JavaScript --> <script src="js/bootstrap.min.js"></script> <script> $(document).ready(function(){ var pageSelected = "page<? print($page);?>"; $("ul.pagination li").removeClass("active"); $("#" + pageSelected).addClass("active"); }); </script> </body> </html>

Mammouth du PHP | 1967 Messages

13 déc. 2016, 10:09

ma première idée va vers les short tag, <? sont il bien activé ? dans le doute, je préconise de toujours utilisé les tag <?php.
sinon il te faut débuguer par étape, affiche ta requète avant l'éxécution teste la dans phpmyadmin par exemple.
vérifie que php enregistre bien les données un var_dump($liste); après ton while peut être utile.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 déc. 2016, 13:16

Idem que Spols, même si les short tags sont activés, la balise "<?php" est préférable pour éviter des conflits avec du XML par exemple...

Pour le problème, dans ton foreach tu fais appel aux index 0, 1 et 2 de $value, alors qu'à priori $value est un tableau indexé avec les index Reference, Nom et Photo :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 2703 Messages

14 déc. 2016, 00:06

$link = mysqli_connect('localhost', 'root', 'root', 'ResidencesEtudiantes');
$resultats = mysqli_query($session,$requete); // ne fonctionne probablement pas