Letzten 5 Datensätze ausgeben

08/15/2012 15:27 DevelopmentFOE#1
PHP Code:
      <?php
      
        
include('../config/database_trade.php'); 
        
        
$sql_select_trades         "SELECT * FROM trades";
        
$sql_select_trades_query   mysql_query($sql_select_trades);
        
$sql_row                   mysql_fetch_object($sql_select_trades_query); 
        
        
        echo 
"<table border='1'>";
            echo 
"<tr>";
                echo 
"<th>User A</th>";
                echo 
"<th>User B</th>";
                echo 
"<th>Item A</th>";
                echo 
"<th>Item B</th>";
                echo 
"<th>Datum</th>";
                echo 
"<th>Status</th>";
            echo 
"</tr>";
            
            echo 
"<tr>";
                echo 
"<th>"; echo $sql_row->usera; echo "</th>"
                echo 
"<th>"; echo $sql_row->userb; echo "</th>";
                echo 
"<th>"; echo $sql_row->des1;  echo "</th>";
                echo 
"<th>"; echo $sql_row->des2;  echo "</th>"
                echo 
"<th>"; echo $sql_row->date;  echo "</th>"
                echo 
"<th>"; echo $sql_row->state; echo "</th>";
            
            echo 
"</tr>";
        echo 
"</table";
        
         
      
      
?>
Er gibt jedoch nur den letzten Datensatz aus ich möchte das die neusten Datensätze ausgegeben werden. (Die neusten 5).
Habe dan an ne While-Schleife gedacht ;/
08/15/2012 15:46 マルコ#2
Warum nutzt du nicht SQL?
Code:
SELECT usera,userb,des1,des2,date,state FROM trades ORDER BY date LIMIT 5;
Damit sortiert er es dir nachm Datum und du musst halt 5 mal die nächste Zeile holen.

PHP Code:
while($sql_row mysql_fetch_object($sql_select_trades_query))
{
  
// do sth.

08/15/2012 15:52 Mikesch01#3
Quote:
Originally Posted by DevelopmentFOE View Post
Er gibt jedoch nur den letzten Datensatz aus ich möchte das die neusten Datensätze ausgegeben werden. (Die neusten 5). Habe dan an ne While-Schleife gedacht ;/
Genau, daher hier der neue Code:
PHP Code:
      <?php
      
        
include('../config/database_trade.php'); 
        
        
$sql_select_trades         "SELECT * FROM trades ORDER BY date DESC LIMIT 5"
        
$sql_select_trades_query   mysql_query($sql_select_trades);
    
        echo 
"<table border='1'>";
            echo 
"<tr>";
                echo 
"<th>User A</th>";
                echo 
"<th>User B</th>";
                echo 
"<th>Item A</th>";
                echo 
"<th>Item B</th>";
                echo 
"<th>Datum</th>";
                echo 
"<th>Status</th>";
            echo 
"</tr>";

        while(
$sql_row mysql_fetch_object($sql_select_trades_query)) {            
            echo 
"<tr>";
                echo 
"<td>"; echo $sql_row->usera; echo "</td>"//für die Daten sollte ein <td> (Table Data) statt <th> (Table Head) verwendet werden. 
                
echo "<td>"; echo $sql_row->userb; echo "</td>";
                echo 
"<td>"; echo $sql_row->des1;  echo "</td>";
                echo 
"<td>"; echo $sql_row->des2;  echo "</td>"
                echo 
"<td>"; echo $sql_row->date;  echo "</td>"
                echo 
"<td>"; echo $sql_row->state; echo "</td>";
            echo 
"</tr>";
                }
        echo 
"</table";      
      
?>
Folgendes noch einmal erklärt:

PHP Code:
$sql_select_trades "SELECT * FROM trades ORDER BY date DESC LIMIT 5"
Du wählst alle Spalten in der Tabelle trades aus und sortierst diese absteigend (DESC = Descending = absteigend) nach Datum, damit du die 5 neusten Einträge hast. Mit LIMIT 5 gibst du an, dass es nur maximal 5 Datensätze sein sollen.
08/15/2012 15:55 DevelopmentFOE#4
Ok, funktioniert wäre es auch irgendwie möglich falls der Inhalt in der Datenbank länger als X-Zeichen ist das es dann so aus sieht "League of Leg..."?
08/15/2012 16:09 マルコ#5
PHP Code:
if(strlen($string) > $maxlen)
  
$string substr($string,0,$maxlen) . '...'