How To Force MySql With Php To Show Final Row Only?

Buds!

How to code so php forces mysql to show only the final row of the column ?
The followings are how I coded (2 copied youtube tuts) to show all rows to allow user to delete multiple rows:

SAMPLE 1

<?php
session_start();
require "conn.php";
require "site_details.php"; ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Follow Users</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<form name="form" action="" method="post">
<table border=1 cellpadding=1 cellspacing=1>
	<tr>
		<th>Id</th>
		<th>Username</th>
		<th>Password</th>
		<th>Email</th>
		<th>Delete</th>
	</tr>
<?php
$res=mysqli_query($conn,"SELECT * FROM users");
while($row=mysqli_fetch_array($res))
{
	echo "<tr>";
	echo "<td>"; ?> <input type="checkbox" name="num[]" class="other" value="<?php echo $row["id"]; ?>" /> <?php echo "</td>";
	echo "<td>"; echo $row["ids"]; echo "</td>";
	echo "<td>"; echo $row["usernames"]; echo "</td>";
	echo "<td>"; echo $row["passwords"]; echo "</td>";
	echo "<td>"; echo $row["emails"]; echo "</td>";
	echo "</tr>";
}
?>
</table>
<input type="submit" name="submit" value="delete selected">
</form>
<?php
if(isset($_POST["submit"]))
{
   $box=$_POST['num'];
   while (list ($key,$val) = @each ($box))
	{
      mysqli_query($conn,"DELETE FROM users WHERE id='$val'");
    }
?>
       <script type="text/javascript">
       window.location.href=window.location.href;
       </script>
<?php
}
?>

</body>
</html>

SAMPLE 2:

<?php
session_start();
require "conn.php";
require "site_details.php"; ?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Follow Users</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<table border=1 cellpadding=1 cellspacing=1>
	<tr>
		<th>Id</th>
		<th>Username</th>
		<th>Password</th>
		<th>Email</th>
		<th>Delete</th>
	</tr>
<?php 
$sql = "SELECT * FROM users";
$result = mysqli_query($conn,$sql);
while($row = mysqli_fetch_array($result))
	{
		echo "<tr>";
		echo "<td>".$row['ids']."</td>";
		echo "<td>".$row['usernames']."</td>";
		echo "<td>".$row['passwords']."</td>";
		echo "<td>".$row['emails']."</td>";
		echo "<td><a href=delete2b.php?id=".$row['ids'].">Delete</a></td>";
	}

?>
</table>
</body>
</html>

If you are not giving this any special ordering, just selecting them the way they are in the database table, try this:

SELECT * FROM users
ORDER BY id DESC
LIMIT 1

That will put all the records in reverse order, then only select the first one (which was originally your last row).

3 Likes

Thanks a bunch. I saved your suggestion.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.