Reputation: 1725
$rows = mysql_num_rows($result) ;
for ($j=0 ; $j < 3 ; $j++) {
for ($i=0 ; $i < 3 ; $i++) {
$row = mysql_fetch_array($result) ;
echo '<a href="image2.php?id='.$row['ID'].'">'."<img src='".$row['Image']."' />".'</a>' ;
}
echo "\r\n";
}
The code displays three groups of three images. My understanding was that \r\n and \n (double quotes) should create a new line. However it is just inserting a space between the images. Is the way am callign \r\n wrong or is it am using the wrong code to isneert a new line (line break)
Examples (# = one image):
Without echo \r\n: ######### With echo \r\n: ### ### ###
Upvotes: 12
Views: 41690
Reputation: 17520
You can also consider setting a proper header Exmaple:
$data = [
[1,2,3],
[4,5,6],
[7,8,9]
];
header("Content-Type: text/plain");
foreach($data as $row){
echo implode(',', $row) . "\r\n";
}
Upvotes: 1
Reputation: 7243
Your echo "\r\n";
is outside the loop. Move it inside the loop.
Also, if you want the line breaks to be visible in the browser, you should print a <br />
too.
$rows = mysql_num_rows($result) ;
for ($j=0 ; $j < 3 ; $j++) {
for ($i=0 ; $i < 3 ; $i++) {
$row = mysql_fetch_array($result) ;
echo '<a href="image2.php?id='.$row['ID'].'">'."<img src='".$row['Image']."' />".'</a>' ;
}
echo "<br />\n";
}
Upvotes: 12
Reputation: 437336
Whitespace is not displayed verbatim when it's part of HTML text. \r
and \n
are not universal constants; they are just characters, and it's up to whatever program consumes them to decide what to do with them.
You should use <br>
instead.
Upvotes: 13