Page 1 of 1

How to query to return all photos of that albumid

Posted: Mon Apr 16, 2012 12:45 am
by danjapro
I am trying to return all the photos in the database that has the albumid associated with that table info. I can echo the $album->id (albumid) no problem, but my query it think is somewhat off. Please anyone.

Code: Select all

<div id="photo-items" class="photo-list-item">
	<?php
	echo $album->id.'<br>';
	
	// fetch album photos and ids
	$database    =& JFactory::getDBO();
	$query  = "SELECT * FROM jos_photos where albumid  = ".$album->id." ORDER BY ASC";
	$photos = mysql_query($query);	 //This returns and array of photos, but then needs to display all the photos in loop below, but it not retuning none, even if there is 100 photos in table and in the folder directory
		
	if($photos)
	{	
	for( $i=0; $i<count($photos); $i++ ){
	$row =& $photos[$i];
	?>
		<div class="photo-item" id="photo-<?php echo $i;?>" title="<?php echo $this->escape($row->caption);?>">
			<a href="<?php echo $row->link;?>"><img class="" src="<?php echo $row->getThumbURI();?>" alt="<?php echo $this->escape($row->caption);?>" id="photoid-<?php echo $row->id;?>" /></a>
			<?php
			if( $isOwner )
			{
			?>
			<div class="photo-action">
				<a href="javascript:void(0);('<?php echo $row->id;?>');" class="remove"><?php echo JText::_('CC REMOVE');?></a>
			</div>
			<?php
			}
			?>
		</div>
	<?php
		}
	}
	else
	{
	?>
	<div class="empty-list"><?php echo JText::_('CC NO PHOTOS UPLOADED YET');?>   <button class="button button-upload" href="javascript: void(0);&userid=88" id="upload-photos-button">Start Uploading</button></div>
	<?php
	}
	?>
</div>



Re: How to query to return all photos of that albumid

Posted: Mon Apr 16, 2012 1:05 am
by requinix
I just love copy/pasting the same answer across forums.
requinix wrote:

Code: Select all

//This returns and array of photos
No, it doesn't. $photos is a resource that you use to get rows of data via functions like mysql_fetch_array.

Re: How to query to return all photos of that albumid

Posted: Mon Apr 16, 2012 9:33 am
by danjapro
So should it say

Code: Select all

$row = mysql_query($query);


Re: How to query to return all photos of that albumid

Posted: Mon Apr 16, 2012 10:57 am
by danjapro
Thanks to all here, I solved this issue. I re-wrote the query to fiot joomla standard API.

It worked fine.

Code: Select all


		$db    =& JFactory::getDBO();

		/**
		 * Cast album ID to int to prevent possible SQL injection even though data looks relatively safe. You
		 * could also use mysql_real_escape_string but casting to an int seems simpiler and essentially provides
		 * the same result in regards to avoiding SQL injection.
		 */

		$query  = "SELECT * FROM jos_photos where albumid  = ".$album->id." ORDER BY id ASC";
	
		/**
		 * The return value of mysql_query when selecting data is either false (failed query) or result resource (success)
		 */
		//echo $query;
		//$result = mysql_query($query);
		$db->setQuery($query);
		$results = $db->loadObjectList(); 
		//This returns and array of photos, but then needs to display all the photos in loop below, 
		//but it not retuning none, even if there is 100 photos in table and in the folder directory


		if(count($results)) {
			foreach($results as $row) {
				//echo $row->id;
				//echo $row->thumbnail;