Forum Moderators: coopster

Message Too Old, No Replies

PHP Nested Loop Produces Redundant Records?

         

lonestar23

3:34 am on Nov 19, 2008 (gmt 0)

10+ Year Member



I am having problems retrieving distinct records from a XML record. I am using the following code but seem to have the same image in an entire row. Thanks in Advance!


<?php
$display_number = 15;

$tmp .= '<table width="100%" border="1" cellspacing="1" cellpadding="1">';

for ($i = 1; $i <= $display_number; $i++) { //this is the outer loop

$tmp .= $i;

#$thumb = $data['ysearchresponse']['resultset_imag...

$tmp .= "<tr>";
$tmp .= "<td>".$i."</td>";

for($j = 1; $j <= 3; $j++) { // inner loop

$thumb = $data['ysearchresponse']['resultset_imag...

$tmp .= "<td>";
#$tmp .= $i * $j;
$tmp .= '<img src="';
$tmp .= $thumb;
$tmp .= '"/>';
$tmp .= $title;
$tmp .= "</td>";
}

$tmp .= "</tr>";
}
$tmp .= '</table>';
?>

willis1480

3:42 am on Nov 19, 2008 (gmt 0)

10+ Year Member



why would you expect something different?

$thumb has nothing to do with the loop. It should be something like $data['blah'][$i][$j] or whatever this $data variable holds.

Sorry if this is not of help.

lonestar23

3:50 am on Nov 19, 2008 (gmt 0)

10+ Year Member



are you saying that $data['ysearchresponse']['resultset_images']['result'][$i][$j]['thumbnail_url']; would work? It did not seem to work..

willis1480

3:55 am on Nov 19, 2008 (gmt 0)

10+ Year Member



not saying that at all, do this...
print_r($data)...that will show you how to get the right info out of your array

willis1480

4:16 am on Nov 19, 2008 (gmt 0)

10+ Year Member



the $data var only contains 1 image URL.

lonestar23

4:25 am on Nov 19, 2008 (gmt 0)

10+ Year Member



The link is now producing 6 results, but when I try to put them in a table they, become redundant. here is some revised code, but still not getting wanted result

[code]
<?php
$tmp .= '<table width="100%" border="1" cellspacing="1" cellpadding="1">';

#for ($i = 1; $i <= $display_number; $i++) { //this is the outer loop
foreach($data['ysearchresponse']['resultset_images']['result'] as $key => $value){

print_r($data);

#$tmp .= $i;

#$thumb = $data['ysearchresponse']['resultset_images']['result'][$key]['thumbnail_url'];

$tmp .= $thumb;

$tmp .= "<tr>";
$tmp .= "<td>".$i."</td>";

for($j = 1; $j <= 3; $j++) { // inner loop

$thumb = $data['ysearchresponse']['resultset_images']['result'][$key]['thumbnail_url'];


$tmp .= "<td>";
#$tmp .= $i * $j;
$tmp .= '<img src="';
$tmp .= $thumb;
$tmp .= '"/>';
$tmp .= $j;
$tmp .= "</td>";
}

$tmp .= "</tr>";
}
$tmp .= '</table>';

$tmp .= '<div>';
?>

[edited by: coopster at 3:01 pm (utc) on Nov. 19, 2008]
[edit reason] removed url per TOS [webmasterworld.com] [/edit]

lonestar23

5:10 am on Nov 19, 2008 (gmt 0)

10+ Year Member



Here is the fix to the above code. Tested and working great!


<?php
$table .= '<table width="100%" border="1" cellspacing="1" cellpadding="1"><tr>';

$i = 0;
foreach( $data['ysearchresponse']['resultset_images']['result'] as $value ) {
if ( $i == 3 ) {
$table .= '</tr><tr>';
$i = 0;
}
$table .= "<td><img src=\"{$value['thumbnail_url']}\" /></td>";
$i++;
}

$table .= '</tr></table>';
?>