user5537898
user5537898

Reputation:

php sql How to display only the last value in the row?

I need only to display the last values in the row. Now its displaying

Message for: Rocha : gff Message for: Rocha : Message for: Rocha : hi my name is kenny

I only need it to display Message for: Rocha : hi my name is kenny. Thank you

<?php
$servername = "localhost";
$username = "root";
$password = "root";
$dbname = "company";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 

$sql = "SELECT id, className, lastname, messages FROM Mymesages";
$result = $conn->query($sql);

if ($result->num_rows > 0) {


    // output data of each row
    while($row = $result->fetch_assoc()) {      


        if("CPS210-CompSci-I (4)"==$row["className"] && $lastname== $row["lastname"]){
          echo  "Message for: "   . $row["lastname"]. " : " .  $row["messages"]. "<br>";
        }

    }

}

$conn->close();
?>

Upvotes: 0

Views: 43

Answers (2)

Rajdeep Paul
Rajdeep Paul

Reputation: 16963

If you want to display the last row, then your query should be like this:

$sql = "SELECT id, className, lastname, messages FROM Mymesages ORDER BY id DESC LIMIT 1";

And later, instead of while loop simply fetch the row like this:

$row = $result->fetch_assoc();

Upvotes: 1

Indrasis Datta
Indrasis Datta

Reputation: 8618

If you're looking for only one record, that too the last one, you just need to modify your query a little. Also, there's no need for the loop in that case.

$sql = "SELECT id, className, lastname, messages FROM Mymesages ORDER BY id DESC LIMIT 1";

Replace this line:

while($row = $result->fetch_assoc()) {      

With simply:

$row = $result->fetch_assoc();

Upvotes: 1

Related Questions