Reputation: 99
I'm retrieving data from the database using an unique id. Now the problem is, all the values are being retrieved and are being printed in a single line. I want them below one another. I tried "
" "\n
" and also 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>
Upvotes: 3
Views: 1713
Reputation: 173572
Considering your output, you could write a loop for the fields you wish to print and just append <br>
to each line; also make sure you properly escape your output for HTML:
foreach (['EnrNo', 'Name', 'Batch Code', 'Start Date', 'End Date', 'Course', 'Duration'] as $field) {
echo $field, ': ', htmlspecialchars($row[$field], ENT_QUOTES, 'UTF-8'), '<br>';
}
Upvotes: 0
Reputation: 77
try this
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."
");
}
Upvotes: 0
Reputation: 1555
You have to use <br>
for line breaks and .html()
instead of .text()
.
Otherwise the html will be escaped anyhow.
Upvotes: 1
Reputation: 4218
Html uses BR
tag to insert a single line break.
To have a value printed on a new line, you can add your line break tag <BR />
after every line like this:
echo ("EnrNo: " .$row["EnrNo"]).'<BR />';
Please Note :
In HTML, the
<br>
tag has no end tag.In XHTML, the
<br>
tag must be properly closed, like this:<br />
Upvotes: 1
Reputation: 90
try this
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>");
}
Upvotes: 1
Reputation: 1563
Try "
", instead of "\n",
Example:
echo "Value1 :".$value1."<br>";
echo "Value2 :".$value2."<br>";
echo "Value3 :".$value3."<br>";
echo "Value4 :".$value4."<br>";
echo "Value5 :".$value5."<br>";
Upvotes: 1
Reputation: 3953
Did you simply try:
echo ("Duration: " .$row["Duration"]."<br>");
\n
is only visible in the source code, while <br>
affects the html.
Upvotes: 1