Mysql
 sql >> Datenbank >  >> RDS >> Mysql

PHP-Datenbankausgabe zeigt nicht den richtigen Weg

Zunächst einmal:Da Sie mehrere Themen aus der DB holen möchten, müssen Sie das LIMIT 1 entfernen aus der Abfrage und dem if($j >= 1) continue; in der foreach-Schleife, da beide Ihre Ausgabe auf nur 1 Thema beschränken.

In Ihrer foreach-Schleife für $toppics (korrekte Schreibweise:Themen;P) Sie wiederholen derzeit nur einen Anchor-Tag (Link), aber was Sie wollen, ist (um Ihre Worte hier zu verwenden) ein "Block". Wie auch immer dieser Block aussehen soll, der Platz zum Definieren ist innerhalb dieser foreach-Schleife.

Jetzt weiß ich nicht, welche Elemente, Klassen oder Stile Sie verwenden / verwenden möchten, also mache ich ein Beispiel für einen Block, der aus einem Titel und darunter dem Link besteht:

//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>';
}

Ich weiß, dass meine Lösung nicht genau wie Ihr gegebenes Bild aussehen wird, aber sie sollte vermitteln, wie und wo Sie Ihre Blöcke erstellen können.

Ich denke, dieses Problem hätte leicht lösbar sein müssen, wenn Sie die Grundlagen von HTML kennen, also würde ich Ihnen wirklich empfehlen, etwas mehr über HTML zu lernen, bevor Sie an großen Projekten arbeiten.

Bearbeiten nachdem die Frage bearbeitet wurde:
Wie ich in meiner Antwort erwähnt habe, my solution will not look exactly like your given image weil I don't know what elements, classes or stylings you use . Ihr verbleibendes Problem ist nun die Verwendung der richtigen HTML-Tags, Klassen und Stile.

Es scheint, dass das übergeordnete Element der generierten Divs so gestaltet ist, wie die einzelnen Blöcke aussehen sollen.
Sie könnten also das übergeordnete Element entfernen und es als Ersatz für das generierte div verwenden :

<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>

Nebenbemerkung :Ich stimme Ihrer Erstellung Ihres href-Attributs #section1 nicht zu. Beim Erstellen dieser Abschnitte müssten Sie diesen genauen Index aus der vorherigen foreach-Schleife kennen. Verwenden Sie stattdessen ein Attribut aus dem Thema selbst, vielleicht seine ID, seinen Titel oder seine Beschreibung (wie ich es im ersten Codeblock getan habe). Auf diese Weise können Sie beim Erstellen der Abschnitte leicht wissen, wie das Element-ID-Attribut festgelegt wird.