All details of a single record of MySQL table in one page

Records from MySQL table We have seen how to display records of a mysql table here. Now we will learn how to display one record in a single page. This is required where full details of a record are to be shown in a page. Usually the records unique id is used to collect the details from the table. So same php page is used and the value of unique id of the record is taken as a variable. Before that links to different records are displayed and on click the full details are shown. So we will fist start with displaying a group of records with link to individual records.


Connecting database and executing Query

To manage data we have to connect to MySQL database and execute query to get our date. Here there are two ways to use PHP drivers to connect to MySQL and execute the functions for getting records.

One is using Portable Data Object ( PDO )
Second one is MySQLI ( MysQL Improved )

We will learn both here. We will first use PDO and at the end we will use MySQLI. You can use any one for your script.

Displaying Links to individual records

We will use our student table where we have added two more columns ( fields ) to store address and image. As we have more records so to restrict number of records we will display records of a particular class. The query is here.
select * from student where class='Four' order  by  id
Using the above query we will display the records by keeping them inside an html table. At the top of the script we will connect to MySQL database.
Here is the code.
<html>
<head>
<title></title>
</head>
<body >

<?Php
require "config.php"; // connection string is here

////////Query & Data Display is here/////////

$q="select * from student where class='Four' order  by  id ";
echo "<table>";
foreach ($dbo->query($sql) as $row) {
echo "<tr><td><a href=details.php?id=$row[id]>$row[name]</a></td><td>$row[class]</td></tr>";
}
echo "</table>";
/////////////////////////////////////  
?>
</body>
</html>
You can see we have used the name field to display a hyper link and by clicking that the individual record can be displayed in details.php page. We have formatted the hyper link to carry the student id in query string.
<a href=details.php?id=$row[id]>$row[name]</a>
Link with name value pair
The output of above code is here
Krish StarFour
John MikeFour
Alex JohnFour
Big JohnFour
Tade RowFour
GimmyFour
Babby JohnFour
Marry ToeeyFour

Displaying individual records in page

Showing one record from MySQL table By clicking the hyper link the address bar will carry the student id to details.php page to use inside our query. But before using this student id we have to sanitize this data as it can be changed to carry out injection attack. There are different ways to do this but we will check if the data is numeric or not and exit the page execution if we found non-numeric value is stored in id variable. Here is the code to this part.
$id=$_GET['id'];        // Collecting data from query string
if(!is_numeric($id)){ // Checking data it is a number or not
echo "Data Error";
exit;
}
Now we can use this id value inside our query.
select * from student where id=:id
In above query we have collected the data for the individual record. Now we will display all the fields of the record like this.
NameKrish Star
ClassFour
Mark60
AddressKrish Star_address
Image4.jpg
Here is the code for this.
<html>
<head>
<title></title>

</head>
<body >

<?Php
require "config.php"; // database connection is here

//////Displaying Data/////////////
$id=$_GET['id'];        // Collecting data from query string
if(!is_numeric($id)){ // Checking data it is a number or not
echo "Data Error";    
exit;
}

$count=$dbo->prepare(select * from student where id=:id ");
$count->bindParam(":id",$id,PDO::PARAM_INT,3);


if($count->execute()){
echo " Success ";
$row = $count->fetch(PDO::FETCH_OBJ);
}

echo "<table>"; echo " <tr bgcolor='#f1f1f1'><td><b>Name</b></td><td>$row->name</td></tr> <tr><td><b>Class</b></td><td>$row->class</td></tr> <tr bgcolor='#f1f1f1'><td><b>Mark</b></td><td>$row->mark</td></tr> <tr><td><b>Address</b></td><td>$row->address</td></tr> <tr bgcolor='#f1f1f1'><td><b>Image</b></td><td>$row->img</td></tr> "; echo "</table>"; //////////////////// ?> </body> </html>

Displaying records using MySQLI functions

First we will display all records and then on user clicking of link the full details of the student can be displayed.
<?Php
////////////////////////////////////////////
require "config.php"; // MySQL connection string

$count="SELECT name,id,class,mark,sex FROM student LIMIT 10";

if($stmt = $connection->query($count)){
echo "<table>";

while ($row = $stmt->fetch_assoc()) {
echo "<tr><td><a href=details.php?id=$row[id]>$row[name]</a></td>
<td>$row[class]</td></tr>";
}

echo "</table>";
}else{
echo $connection->error;
}
?>

Displaying all details of single record

<?Php
////////////////////////////////////////////
// Collecting data from query string
$id=$_GET['id'];
// Checking data it is a number or not
if(!is_numeric($id)){
echo "Data Error";
exit;
}
// MySQL connection string
require "config.php"; 

$count="SELECT *  FROM student where id=?";

if($stmt = $connection->prepare($count)){
  $stmt->bind_param('i',$id);
  $stmt->execute();

 $result = $stmt->get_result();
 echo "No of records : ".$result->num_rows."<br>";
 $row=$result->fetch_object();
 echo "<table>";
echo "<tr ><td><b>Name</b></td><td>$row->name</td></tr>
<tr><td><b>Class</b></td><td>$row->class</td></tr>
<tr ><td><b>Mark</b></td><td>$row->mark</td></tr>
<tr><td><b>Address</b></td><td>$row->address</td></tr>
<tr ><td><b>Image</b></td><td>$row->img</td></tr>
";
echo "</table>";
}else{
echo $connection->error;
}
?>
MySQLi connection
bind_param()
MySQLi select query to get data

Displaying Image stored in MySQL table

Usually images are stored in any folder or directory but the name of the image file is stored in a field so to display the photo we will format the image file name by using html img tag. Here is an example to display the photo in place of file name ( replace $row->img with this code ).
<img src=dir_name/$row->img>
To know more about how to store file name in table and manage images along with thumbnail using MySQL database , read photo gallery script

Here is the dump of the student table ( with address and image column )

PHP MySQL Displaying images from MySQL
Subscribe to our YouTube Channel here


Subscribe

* indicates required
Subscribe to plus2net

    plus2net.com







    Eagertolearn

    19-03-2013

    Great tutorial.
    I was banging my head for more than 2 weeks on how to accomplish this task. Thanks for sharing. Well explained.
    I would like to go 1 step further. How can I get the database result opens in a new page.

    Thanks

    effefef

    19-07-2013

    Simple and Good.
    Stanley

    28-09-2013

    Hey man I was looking for this, you have safe my life, thank you very much...
    John

    14-10-2013

    Hi how can I fix the problem with Notice: Undefined index: id.
    I have tested with $id = isset($_GET['id']) ? $_GET['id'] : ''; but send a Data Error; but everything is OK what am I doing wrong?
    smo1234

    17-05-2017

    database management using mysqli ( instead of PDO ) is added.
    B K SAHU

    05-10-2017

    I want multiple drop down menu php code. plz help me
    Rhylex

    17-12-2018

    how to link each data to each profile page using id
    rhodz

    04-02-2019

    hi can I ask what are the url names of the codes like index.php? I didn't work because I don't know what will I put when I save it. Thank you
    smo1234

    08-02-2019

    Each record can be linked by using userid or id and details of the profile can be shown as explained above

    select * from student where id=:id
    smo1234

    08-02-2019

    File names can be anything, you must match the links to the file names.

    06-10-2021

    Good tutorial

    Post your comments , suggestion , error , requirements etc here





    PHP video Tutorials
    We use cookies to improve your browsing experience. . Learn more
    HTML MySQL PHP JavaScript ASP Photoshop Articles FORUM . Contact us
    ©2000-2023 plus2net.com All rights reserved worldwide Privacy Policy Disclaimer