2016-12-28 4 views
0

Ich habe derzeit eine Funktion, die Benutzertickets aus meiner Datenbank zieht. Es zieht diese Daten korrekt, aber aus irgendeinem Grund, statt die Ticketnummern in zwei separaten Zeilen zu wiederholen, platziert es sie in der ersten Zeile der Tabelle. Kann mir jemand helfen, herauszufinden, warum das passieren würde?PHP Echo in der gleichen Zeile in HTML-Tabelle

enter image description here

Dies ist die Funktion:

function findUserTickets() { 
    include_once("dbh.php"); 
    $id = $_SESSION['id']; 
    $sql = "SELECT * FROM tickets WHERE uid=$id"; 
    $result = mysqli_query($conn, $sql); 

    while($row = mysqli_fetch_array($result)) {  
     echo "Ticket #".$row['tid']; 
    } 
    mysqli_close($conn); 
} 

Dies ist der HTML-Code:

<ul> 
    <?php 
    include("includes/functions.inc.php"); 
    include_once("includes/dbh.php"); 
    $userID = $_SESSION['id']; 
    $strSQL = "SELECT * FROM tickets WHERE uid='$userID'"; 
    $rs = mysqli_query($conn, $strSQL); 
    while ($row = mysqli_fetch_array($rs)) { 
    ?> 
     <li> 
      <div class="hk_sug_domian_name"> 
       <p> 
        <?php echo findUserTickets(); ?> 
       </p> 
      </div> 

      <div class="hk_domain_price"> 
       <span class="active_price"><?php echo checkTicketStatus(); ?> </span> 
       <div class="hk_promot_btn"><a class="hk_btn" href="progress.php">View</a></div> 
      </div> 
     </li> 
    <?php 
    } 
    mysqli_close($conn); 
    ?> 
</ul> 
+0

Es ist Echo auf der gleichen Linie, weil in der Schleife Sie 'echo "Ticket #" haben $ row [ 'tid'];.' Ohne Zeilenumbrüche. – Sean

+0

Auch macht Ihr Code keinen Sinn. Warum machst du eine Funktion, wo du die selbe Tabelle/Daten innerhalb einer Schleife auswählst, in der du die selbe Tabelle/Daten wählst? Hier gibt es mehrere Redundanzen. – Sean

+1

** WARNUNG **: Wenn Sie 'mysqli' verwenden, sollten Sie [parametrisierte Abfragen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und [' bind_param'] (http://php.net/manual/en/mysqli-stmt.bind-param.php), um Benutzerdaten zu Ihrer Abfrage hinzuzufügen. ** Verwenden Sie NICHT ** String-Interpolation oder Verkettung, um dies zu erreichen, weil Sie einen schwerwiegenden [SQL injection bug] erstellt haben (http://bobby-tables.com/). ** NIEMALS ** $ _POST 'oder' $ _GET' Daten direkt in eine Abfrage einfügen, es kann sehr schädlich sein, wenn jemand versucht, Ihren Fehler auszunutzen. – tadman

Antwort

1

Statt

$ Reihe Funktion können Sie direkt von Aufrufen verwenden

Wechsel von

<div class="hk_sug_domian_name"> 
     <p> 
      <?php echo findUserTickets(); ?> 
     </p> 
</div> 

zu

<div class="hk_sug_domian_name"> 
     <p> 
      <?php echo "Ticket #".$row['tid']; ?> 
     </p> 
</div>