2017-05-09 2 views
0

Ich wollte dies auf meiner Website tun, aber ich kann keinen geeigneten Weg finden, dies zu tun. Alle Ressourcen werden groß sein. Insgesamt versuche ich, jeden Datenwert in einer einzelnen Bootstrap-Karte zu zeigen. Ist es außerdem möglich, dass die Anzahl der Karten gleich der Anzahl der Werte in der MySql-Tabelle ist? Was ich nicht verstanden habe, war, PHP so in HTML zu integrieren, dass die Seite eine veränderbare Anzahl von Bootstrap-Karten anzeigt. Ich versuche, dies in PHP zu tun (was ich ziemlich neu bin). Danke für die Hilfe. Alle Antworten werden geschätzt.Wie kann ich Daten aus einer MySql-Tabelle in einzelnen Karten mit PHP anzeigen?

//the following gets values from the two tables, I am trying to get the values from the "data" table 
if (isset($_SESSION['username'])) { 
    $userLoggedIn = $_SESSION['username']; 
    $user_details_query = mysqli_query($con, "SELECT * FROM users WHERE username='$userLoggedIn'"); 
    $user = mysqli_fetch_array($user_details_query); 


    $user_id = $user['id']; 
    $data_detail_query = mysqli_query($con, "SELECT * FROM data WHERE user_id ='$user_id'"); 
    $data = mysqli_fetch_array($data_detail_query); 

    $num_rows = mysqli_num_rows($data_detail_query); 
    } 

//The following shows one bootstrap card that I was able to create using one row. 
<div class="card" style="width: 18rem;float:left;margin-top:20px;margin-left:20px;border-color:white;border-width:5px;"> 

     <div class="card-block"> 
      <img style="height:250px;width:100%;" src="<?php echo $data['icon']; ?>" alt="Card image cap"> 
      <div> 
      <h1 class="card-title" ><?php echo $data['name']?><span style="color:#5aff28;float:right" ><?php echo $data['level']; ?></span></h1> 
      <h5 class="card-subtitle mb-2 text-muted"><?php echo $data['category']; ?></h5> 
      <p class="card-text"><?php echo $data['description']; ?></p> 
      <a href="<?php echo $data['link']; ?>" class="card-link">Link</a> 
      <a href="<?php echo $data['developer_link']; ?>" class="card-link">Developer Profile</a> 

     <form method="post"> 

       <div style="width:200;float:left;margin-top:5px" class="form-group"> 
       <input type="text" class="form-control" id="code" name="code" placeholder="Enter Code"> 
       </div> 

     </form method="post"> 
     <a href="" name="code_btn" class="btn btn-success">Enter</a> 
     </div> 

Ich versuche, jede Zeile in der Tabelle „Daten“, die einen Benutzernamen von $ userLoggedIn hat, und zeigt jedes Ergebnis in seiner eigenen Bootstrap-Karte genannt zu bekommen.

Antwort

1

mysqli_fetch_array gibt Ihnen nur das nächste Ergebnis, nicht alle. Sie müssen nur Ihre Ergebnisse aus der Datenbank holen, bis keine weiteren Ergebnisse gibt es, zum Beispiel:

while (($data = mysqli_fetch_array($data_detail_query))) { 
/// ... do the output as above, e.g.: 
?><a href="<?php echo $data['link']; ?>" class="card-link">Link</a><?php 
} 

Und, nebenbei bemerkt, stellen Sie sicher, dass Sie nicht über ein SQL-Injection-Loch produzieren hier:

$user_details_query = mysqli_query($con, "SELECT * FROM users WHERE username='$userLoggedIn'"); 
                       ^^^^^^^^^^^^^^^^ 

Verwenden Sie entweder vorbereitete Anweisungen oder führen Sie ein passendes String-Angebot aus:

$userLoggedIn = $con->real_escape_string($userLoggedIn); 
$user_details_query = mysqli_query($con, "SELECT * FROM users WHERE username={$userLoggedIn}"); 
Verwandte Themen