PDA

View Full Version : Image (php looping) - need help


Iskib
10-28-2007, 09:50 PM
What I am trying to do is pull images/names then put them in a table. I have done this. Now I want it to loop the table 4 times across then drop down <tr></tr> ????

With the code I have so far it does 4 then drops the maining down and does not cont to do 4 then drop down until none are left.

Here is the code can anyone help this noob php learner see the prob ?

<?php
$n = count($contactlist);
for ($i=0; $i<$n; $i++) {
$contact = $contactlist[$i];
$name = $contact->name;
$imgurl = $contact->imgurl;
$uid = $contact->uid;

if ($i == 4) {echo '</tr><tr>';}{


?>
<td>
<table border="0">
<tr>
<td align="center" class="picture_border">
<img src="<?php echo htmlentities($imgurl) ?>" /></a></td>
</tr>
<tr>
<td align="center" background="themes/default/images/gradients/003.gif">
<table width="100%" border="0" cellpadding="4" cellspacing="2" class="text_7_css">
<tr>
<td><input type="checkbox" name="uids[]" value="<?php echo $i ?>"/></td>
</tr>
<tr>
<td><?php echo htmlentities($name, ENT_COMPAT,'UTF-8') ?></td>
</tr>
</table>
</td>
</tr>
</table>
</td>

<?php

}}
?>

Btw this is not a vbulletin script it does to something else. I have been driving myself crazy on why this won't work lol.

Analogpoint
10-29-2007, 03:01 AM
There's many ways of doing something like this. Here are two.

$counter = 0;
foreach ($contactlist as $contact)
{
++$counter;
// output an image

if (!$counter % 4)
{
// start a new row.
}
}$contactlistrows = array_chunk($contactlist, 4);
foreach ($contactlistrows as $row)
{
// start row
foreach ($row as $cell)
{
// print cell
}
// finish row
}

Iskib
10-29-2007, 03:35 AM
Great thanks for the replay I will try it out

--------------- Added 1193633012 at 1193633012 ---------------

Now would that code replace code or just add to it ?

--------------- Added 1193636830 at 1193636830 ---------------

I tried just adding the code and it does the samething thing it was. It counts 4 drops down to start another row then just list all them across. It doesn't count again , drop down until number of contacts = 0 .

--------------- Added 1193637064 at 1193637064 ---------------

Again I am just learning lol.

This doesn't pull the images, names and such from a database or a local file, but pulls from a remote location. Maybe that has something to do with it, but I would think it would still be possible to do what I want it

Andrew Green
10-29-2007, 05:24 AM
if ($i == 4) {echo '</tr><tr>';}{

to

if (($i>0) && ($i % 4 == 0)) {echo '</tr><tr>';}{

Iskib
10-29-2007, 05:35 AM
Great!

Thanks for help!

Just had a couple questions to understand a little better

if (($i>0) && ($i % 4 == 0)) {echo '</tr><tr>';}{

what do && do in php?

and if the % sign multiplying by 4?

calorie
10-29-2007, 05:56 AM
For && see http://www.php.net/manual/en/language.operators.logical.php

For % see http://www.php.net/manual/en/language.operators.arithmetic.php

For more see http://www.php.net/manual/en/language.operators.php

Iskib
10-29-2007, 06:02 AM
Great thanks a lot!