Letzten 6 sql Einträge auslesen

ciberjoerg

Erfahrenes Mitglied
Ich wollte mcih mal erkundigen wie ich mit PhP die letzten 6 Datenbankeinträge auslesen kann, und jeweils einzeln anzeigen lassen kann.
 
Das hängt zum Teil davon ab wie du unterscheidest welches die letzten Einträge sind. Gibt es eine fortlaufende Nummer, wird die Uhrzeit gespeichert wann der Datensatz eingetragen wurde, ...?

Vom Prinzip aber:

PHP:
SELECT feld1, feld2, feld3 FROM tabelle ORDER BY feld1 LIMIT 6

Wobei hier feld1 das Feld ist das die Reiheinfolge festlegt.

Gruß Thomas
 
Ich denke, es sollte auch die Sortierreihenfolge umgedreht werden, damit es die letzten 6 sind. Sicherlich gibt es ein autoincrement-Feld (index oÄ), das dafür herhalten kann.

PHP:
SELECT * FROM tabelle ORDER BY index DESC LIMIT 6

mfg chmee
 
Okay so weit so gut, aber wie kann ich jetzt die einträge einzeln anzeigen lassen.
Sprich ich möchte die nicht alle untereinander sondern 2x3 reihen
 
? Das ist eine Frage der Ausgabeumsetzung (!) War nicht Deine Frage ;)

Angenommen, Du hast 3 Felder, dann würde die Tabelle mind. 6spaltig sein. Dann machst Du in die Ausgabeschleife einen Umschalter mit modulo %, der zB bei gerader Zahl die Tabellenreihe mit </tr><tr> schliesst und eine Neue öffnet.

Sollte etwa so aussehen:
PHP:
$eintrag=0;
echo"<table><tr>";

$abfrage = "SELECT * FROM tabelle";
$ergebnis = mysql_query($abfrage);
  while($row = mysql_fetch_object($ergebnis))
  {
    $eintrag++;
    if(($eintrag % 2)==0)
    {
      echo "</tr><tr>";
    }
    echo "<td>".$row->FeldA."</td>";
    echo "<td>".$row->FeldB."</td>";
    echo "<td>".$row->FeldC."</td>";
  }
echo "</tr></table>";

mfg chmee
 
Zuletzt bearbeitet:
Also ich hab das nun so mein Script.
PHP:
mysql_select_db("phost138395") or die ("Die Datenbank existiert nicht");
$Verbindung = mysql_connect ($conf_pass->db_host, $conf_pass->db_user,$conf_pass->db_pass)
            or die ( 'Konnte keine Verbindung zur Datenbank herstellen' );
            
$lezten_user = "SELECT * FROM fa_pass0_login ORDER BY 'user_id' DESC LIMIT 6";

$resU=mysql_db_query ( $conf_pass->db_name, $lezten_user , $Verbindung)or die ("Fehler in der Ausfuehrung");
        
            while ( $rowU = mysql_fetch_array ( $resU ) )
        {
            echo $rowU['user_id'].". user <a href='public_profil.php?user_id=".$rowU['user_id']."'>".$rowU['nic']."</a> <br>";
        
    }
 
        ?>

Das Resultat könnt ihr eben mal Hier sehen http://webradio.pytalhost.de/newuser.php

Das problem es werde mir immernoch die ersten User angezeigt und nicht die letzten.
Und das mit dem Nebeneinander setzen klappt auch irgendwie nicht ich hab es vorher mal eingefügt gehabt.
 
Ach ja, MOD ist in php %. Oben geändert.

Laß die Hochkommata in der SQL-Query weg.
PHP:
// Nicht
SELECT * FROM fa_pass0_login ORDER BY 'user_id' DESC LIMIT 6
// sondern
SELECT * FROM fa_pass0_login ORDER BY user_id DESC LIMIT 6

mfg chmee
 
p.s.: Kann sein, dass mein Code irgendeinen logischen Fehler drin hat, zB die If-Abfrage falsch liegt oder $eintrag mit 1 beginnen muss. Aber ich erhoffe mir, dass Du Dein Köpfchen anschaltest und selbst ausprobierst. Wir geben die Häppchen, kauen musst Du selbst.

mfg chmee
 
Zurück