How to print multiple values separately in php?
I am fetching data from a database using a unique id. Now the problem is that all values are fetched and printed on one line. I want them to be below each other. I tried "
" "\ n
" as well as nl2br. If anyone could help me. Thanks in advance.
PHP file:
<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'DB';
$db = new mysqli($dbhost, $dbuser, $dbpass, $dbname);
if(mysqli_connect_errno())
{
die("connection couldn't be established");
}
if(isset($_POST['EnrNo']) === true && empty($_POST['EnrNo']) === false) {
//$Enr = $_POST['EnrNo'];
$EnrNo = mysql_real_escape_string ($_POST['EnrNo']);
$query = "Select * FROM cert WHERE EnrNo = '$EnrNo'";
$result = $db->query($query);
$total_num_rows = $result->num_rows;
while ($row=$result->fetch_array())
{
echo ("EnrNo: " .$row["EnrNo"]);
echo ("Name: " .$row["Name"]);
echo ("Batch Code: " .$row["Batch Code"]);
echo ("Start Date: " .$row["Start Date"]);
echo ("End Date: ".$row["End Date"]);
echo ("Course: " .$row["Course"]);
echo ("Duration: " .$row["Duration"]);
} mysqli_free_result($result);
} else {
echo ('Data not found');
};
?>
HTML file:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
Enr No: <input type="text" name="EnrNo" id="EnrNo" /><br/><br />
<input type="submit" name="retrieve" value="retrieve" id="EnrNo-sub" />
<div id="EnrNo-data"></div>
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script type="text/javascript">
$('input#EnrNo-sub').on('click', function() {
var EnrNo = $('input#EnrNo').val();
if (EnrNo != '') {
$.post('retrieve.php', {EnrNo: EnrNo}, function(data) {
$('div#EnrNo-data').text(data);
});
}
});
</script>
</body>
</html>
source to share
The HTML tag uses a tag BR
to insert a line break.
To print the value on a new line, you can add your line break tag <BR />
after each line like this:
echo ("EnrNo: " .$row["EnrNo"]).'<BR />';
Note:
In HTML, the tag
<br>
has no end tag.In XHTML, the tag
<br>
must be properly closed, for example:<BR />
source to share
try it
while ($row=$result->fetch_array())
{
echo ("EnrNo: " .$row["EnrNo"]."<br>");
echo ("Name: " .$row["Name"]."<br>");
echo ("Batch Code: " .$row["Batch Code"]."<br>");
echo ("Start Date: " .$row["Start Date"]."<br>");
echo ("End Date: ".$row["End Date"]."<br>");
echo ("Course: " .$row["Course"]."<br>");
echo ("Duration: " .$row["Duration"]."<br>");
}
source to share
try it
foreach($result->result() as $row)
{echo ("EnrNo:". $ row-> EnrNo. "
"); echo ("Name:". $ row-> Name. "
"); echo ("Batch Code:". $ row-> Batch Code. "
"); echo ("Start date:". $ row-> Start date. "
"); echo ("End date:". $ row-> End date. "
"); echo ("Course:". $ row-> Course. "
"); echo ("Duration:". $ row-> Duration. "
"); }
source to share
Given your output, you can write a loop for the fields you want to print and just add <br>
to each line; also make sure you remove your HTML output correctly:
foreach (['EnrNo', 'Name', 'Batch Code', 'Start Date', 'End Date', 'Course', 'Duration'] as $field) {
echo $field, ': ', htmlspecialchars($row[$field], ENT_QUOTES, 'UTF-8'), '<br>';
}
source to share