Mysql
 sql >> Base de données >  >> RDS >> Mysql

La sortie de la base de données PHP ne s'affiche pas correctement

Tout d'abord :puisque vous souhaitez récupérer plusieurs sujets de la base de données, vous devez supprimer le LIMIT 1 de la requête et le if($j >= 1) continue; dans la boucle foreach, car ils limitent tous les deux votre sortie à un seul sujet.

Dans votre boucle foreach pour $toppics (orthographe correcte :sujets ;P) vous ne faites actuellement écho qu'à une balise d'ancrage (lien), mais ce que vous voulez, c'est (pour utiliser vos mots ici) un "bloc". Quoi que vous vouliez que ce bloc ressemble, l'endroit pour le définir se trouve dans cette boucle foreach.

Maintenant, je ne sais pas quels éléments, classes ou styles vous utilisez/voulez utiliser, je vais donc faire un exemple de bloc composé d'un titre et en dessous du lien :

//rename $topic keys to the names of your DB columns
foreach($toppics as $topic){
    echo '<div>';
    echo '<h3>'.$topic['title'].'</h3><br>'; 
    echo '<a href="#section'.$topic['id'].'">'.$topic['link_text'].'</a>';
    echo '</div><br>';
}

Je sais que ma solution ne ressemblera pas exactement à votre image donnée, mais elle devrait indiquer comment et où vous pouvez construire vos blocs.

Je pense que ce problème aurait dû être facilement résolu lorsque vous connaissiez les bases du HTML, donc je vous recommande vraiment d'en apprendre un peu plus sur le HTML avant de travailler sur de gros projets.

Modifier après la modification de la question :
Comme je l'ai mentionné dans ma réponse, my solution will not look exactly like your given image car I don't know what elements, classes or stylings you use . Votre problème restant est maintenant l'utilisation des balises html, des classes et des styles corrects.

Il semble que l'élément parent des divs générés est stylisé comme vous voulez que les blocs simples ressemblent.
Donc, ce que vous pouvez faire est de supprimer l'élément parent et de l'utiliser en remplacement du div généré, comme ceci :

<div class="col-md-6">
         <div class="well dash-box">
           <h2><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> Stel jezelf voor</h2>
           <h5><a href="https://tom.lbmedia.nl/onderwerp"> Laat wetn wie jij en je business zijn</a></h5>
   </div>
   </div>
  <div class="col-md-6">
  <!--<div class="well dash-box">-->
  <h2><span class="glyphicon glyphicon-list-alt" aria-hidden="true"></span> 12</h2>
  <?php
  $toppics = $app->get_topics();
  $i = 0;
  foreach($toppics as $topic){
      echo '<div class="well dash-box">';
      echo '<h3>'.$topic['onderwerp'].'</h3><br>'; 
      echo '<a href="#section' . $i++ . '">'  .$topic['omschrijving'].'</a>';
      echo '</div><br>';
  }
  ?>
  <!--</div>-->
  </div>

sidenote :Je ne suis pas d'accord avec votre construction de votre attribut href #section1. Lors de la construction de ces sections, vous devez connaître l'index exact de cette boucle foreach précédente. Au lieu de cela, utilisez un attribut du sujet lui-même, peut-être son ID, son titre ou sa description (comme je l'ai fait dans le premier bloc de code). De cette façon, lorsque vous créez les sections, vous pouvez facilement savoir comment définir l'attribut id des éléments.