sql >> Database >  >> RDS >> Mysql

Selecteer de meest recente 5 rijen op basis van datum

<?php
$host = 'localhost'; $db = 'db-name'; $user = 'db-user'; $pw = 'db-password';
$conn = new PDO('mysql:host='.$host.';dbname='.$db.';charset=utf8', $user, $pw);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
?>

<?php
$sql = "SELECT id,title,date,author FROM table ORDER BY date DESC LIMIT 5";
$query = $conn->prepare($sql);
$query->execute();
$row = $query->fetch(PDO::FETCH_ASSOC);
$totalRows = $query->rowCount();
?>

<?php do {
// print your results here ex: next line
echo 'Title: '.$row['title'].' Date: '.$row['date'].' Author: '.$row['author'].'<br>'; 
} while ($row = $query->fetch(PDO::FETCH_ASSOC)); ?>

Vergeet niet bronnen te sluiten en vrij te geven

<?php $query->closeCursor(); ?>

BEWERKEN

Ik raad aan om geen foutmeldingen te herhalen als je eenmaal hebt bevestigd dat je code functioneert zoals verwacht; als u echter gewoon platte tekst wilt gebruiken, kunt u dit doen...

Je kunt dit toevoegen aan je verbindingsblok...

if ($conn->connect_error) {
    die("Database Connection Failed");
    exit;
}

U kunt ook uw queryblok wijzigen...

try {
    $sql = "SELECT id,title,date,author FROM table ORDER BY date DESC LIMIT 5";
    $query = $conn->prepare($sql);
    $query->execute();
    $row = $query->fetch(PDO::FETCH_ASSOC);
    $totalRows = $query->rowCount();
} catch (PDOException $e) {
    die("Could not get the data you requested");
    exit;
}

Nogmaals, het wordt aanbevolen om fouten niet te herhalen. Gebruik foutcontrole alleen voor debuggen.



  1. Verwijzen naar dezelfde tabel als doel van UPDATE en gegevensbron in MySql

  2. Bewaar PHP-code op MySQL en laat het draaien

  3. Recursieve omvatten Sequelize?

  4. Rijgrootte te groot fout in mysql tabelquery maken