Display 2nd upload
7 posts by 3 authors in: Forums > CMS Builder
Last Post: November 3, 2008 (RSS)
I have a field (upload) which allows up to 4 uploads (in the same field)
Is there anyway I can display the 2nd upload (image) only?
For example:
<?php foreach ($tableRecord['photo'] as $upload): ?>
img src="<?php echo $upload['urlPath'] ?>" />
<?php break; ?>
<?php endforeach ?>
That above code, using the BREAK will display the first upload, and then stop i.e. display upload 1.
Can I make it display upload 2... maybe either through an ONLY DISPLAY 2 (instead of a foreach), or a foreach, that STARTS at 2 and then stop with BREAK.
Hope that makes sense
Cheers
Rob
PS I know I can do through by separating uploads into separate fields (i.e. photo_1, photo_2, photo_3, photo_4) as then I just set the upload to display, but I won't want to have to separate the uploads...!
Re: [rjbathgate] Display 2nd upload
By Dave - November 2, 2008
You can, it takes a little bit of more advanced PHP. Here's the details:
The value of $tableRecord['photo'] is actually a PHP array, so you can refer to an element in the array by number like this: $tableRecord['photo'][0]. Note that arrays start counting at 0, so the second image would be accessed with [1].
Try this:
<?php if (@$tableRecord['photo'][1]): ?>
<img src="<?php echo $tableRecord['photo'][1]['urlPath'] ?>" />
<?php endif ?>
Or if it makes it more readable you can assign the 2nd upload to a variable first:
<?php $upload = @$tableRecord['photo'][1]; ?>
<?php if (@$upload): ?>
<img src="<?php echo $upload['urlPath'] ?>" />
<?php endif ?>
Hope that helps!
interactivetools.com
Re: [Dave] Display 2nd upload
Simply
<img src="<?php echo $tableRecord['photo'][2]['urlPath'] ?>" />
works a treat.
Cheers
Rob
Re: [rjbathgate] Display 2nd upload
By Dave - November 3, 2008
Glad it's working!
interactivetools.com
Re: [Dave] Display 2nd upload
Out of interest, what does the @ in the IF statement do?
<?php if (@$tableRecord['photo'][1]): ?>
I can't see how that IF statement checks that it is an image in the record... or is that the @?
Cheers Dave!
Re: [rjbathgate] Display 2nd upload
Out of interest, what does the @ in the IF statement do?
I think I'm right in saying that the @ symbol is used to suppress error messages.
:0)
Perch
Re: [Perchpole] Display 2nd upload
By Dave - November 3, 2008
You can prevent something from giving errors usually by putting a @ in front of it.
The "proper" way is to check if a key exists with the array_key_exists() function, but it makes for much more verbose, less readable code:
<?php if (array_key_exists('photo', $tableRecord) and array_key_exists('1', $tableRecord['photo'])): ?>
So I prefer the previous way.
interactivetools.com