close ad
 
Important WebAssist Announcement
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

customizing a detail page.

Thread began 5/05/2015 3:43 am by Kumel | Last modified 6/23/2015 11:44 pm by Ray Borduin | 4343 views | 30 replies |

Kumel

customizing a detail page.

i got an website for artworks.

where admin can upload the artworks and etc.

site link: http://www.shrishtiart.com/

artworks page: http://www.shrishtiart.com/artworks.php

Now from artworks.php if you choose an artwork then your taken to artwork-details.php?id=44 or so....

Now within that page (artwork-details.php) there is next & prev.

Here when i click next or prev it just takes to next artwork.

But in artworks.php page the order is: ORDER BY `position` ASC

so i wanna use same in artwork-details.php when someone clicks next it should show next artwork shown in artworks.php page.

Example: 4th artwork here is: id=356 "WHITE SCULPTURE ARTWORK" "Chippa Sudhakar" (http://www.shrishtiart.com/artworks.php)
So then when i m in http://www.shrishtiart.com/artwork-details.php?id=356 and when i click next i must be taken to : http://www.shrishtiart.com/artwork-details.php?id=64 but instead it takes me to: id=357 .

So how do i solve this?

Sign in to reply to this post

Ray BorduinWebAssist

Is the value for the position column in the database unique? If not you would want to ORDER by both the position and the id for consistency between pages.

You are going to have to order by the same columns on the details page that you did on the results page for your next and previous recordsets. Then you are going to also filter based on the position of the current record and not the id of the current record. To do this you would probably want to store the value from the first recordset into a $_GET variable after the main recordset but before the previous and next recordsets like:

<?php
$_GET['position'] = $row_WADAartworks['position'];
?>

Now you would update your next and previous recordsets to find their positions based on the current postion (and ID if position isn't unique).

It might look like:

SELECT id FROM artworks WHERE position > %s ORDER BY position, id LIMIT 1

If position isn't unique it would be:

SELECT id FROM artworks WHERE position > %s and id > %s ORDER BY position, id LIMIT 1

Sign in to reply to this post
Did this help? Tips are appreciated...

Kumel

the value for the postion column is not unique.

I added this after WADAartworks RS:
$_GET['position'] = $row_WADAartworks['position'];

So now where do i add this: SELECT id FROM artworks WHERE position > %s and id > %s ORDER BY position, id LIMIT 1

Sign in to reply to this post

Ray BorduinWebAssist

You are going to have to update both your previous and next recordsets to use both position and ID for ordering... you will have to also update the recordset on the results page.

Sign in to reply to this post
Did this help? Tips are appreciated...

Kumel

artwork-details.php :

rsnextid:

SELECT id
FROM artworks
WHERE id > colname



colname: $_GET['id']

rspreviousid:

SELECT id
FROM artworks
WHERE id < currentid
ORDER BY id DESC LIMIT 1



currentid: $_GET['id']


rsminmaxid:

SELECT min(id) AS MinID, max(id) AS MaxID
FROM artworks



Above are details of artwork-details.php


So from above 3 RS where we need to change?

"you will have to also update the recordset on the results page"

results page is artworks.php
ie: http://www.shrishtiart.com/artworks.php

file attached

Sign in to reply to this post

Kumel

well i got the basic idea for it. attached artworks-details.php file.

Next seems to work.
But what not prev. not sure what needs to be done.

Sign in to reply to this post

Ray BorduinWebAssist

Next would be:
"SELECT id FROM artworks WHERE position >= %s and id > %s ORDER BY position, id LIMIT 1"

and prev would be:
"SELECT id FROM artworks WHERE position <= %s and id < %s ORDER BY position DESC, id DESC LIMIT 1"

The position comparison has to be >= not just > because it might be the same as the previous.

Sign in to reply to this post
Did this help? Tips are appreciated...

Kumel

for next this seems to work:

"SELECT id FROM artworks WHERE position > %s and id > %s ORDER BY position, id LIMIT 1"



but for prev this doesn't work :

"SELECT id FROM artworks WHERE position <= %s and id < %s ORDER BY position DESC, id DESC LIMIT 1"


Prev a href:

"artwork-details.php?id=<?php echo $totalRows_rspreviousid == 0 ? $row_rsminmaxid['MaxID']:(isset($_GET['id'])?$row_rspreviousid['id']:1);?>"


Next a href :

"artwork-details.php?id=<?php echo $totalRows_rsnextid == 0 ? $row_rsminmaxid['MinID']:(isset($_GET['id'])?$row_rsnextid['id']:1);?>"
Sign in to reply to this post

Kumel

I got an artist page : http://www.shrishtiart.com/artists.php

Lets say i choose an artist ie: http://www.shrishtiart.com/artist/achuthan-kudallur

Then artist's artworks are displayed.
Now when i click on 1st artwork: Art ID=164

i m taken to: http://www.shrishtiart.com/artwork-details.php?id=164

So now when i click next from botttom then i must be taken to next artwork of same artist so how is it done?

DB Structure Attached.
artwork-details page also attached. the next button seems to work but not prev botton.

Sign in to reply to this post

Ray BorduinWebAssist

I've thought about this more and I see why it isn't working. Adding the id to the where clause won't work in this way because it doesn't account for the precedence of the position search first. I think it would require a different where clause. I've added a parameter, the first and second parameter values could be set to the same run-time value.

So the next query would be:

SELECT id FROM artworks WHERE position > %s OR (position = %s AND id > %s) ORDER BY position, id LIMIT 1

and the prev query would be:

SELECT id FROM artworks WHERE position < %s OR (position = %s AND id < %s) ORDER BY position DESC, id DESC LIMIT 1

If you want to only display artwork from the same artist then you would have to add another filter to each previous and next recordset so that it filters by the artist field of the first recordset, just like you did with the position. Set a $_GET variable from the first recordset and then add it as a parameter to the other recordsets that way.

Sign in to reply to this post
Did this help? Tips are appreciated...
loading

Build websites with a little help from your friends

Your friends over here at WebAssist! These Dreamweaver extensions will assist you in building unlimited, custom websites.

Build websites from already-built web applications

These out-of-the-box solutions provide you proven, tested applications that can be up and running now.  Build a store, a gallery, or a web-based email solution.

Want your website pre-built and hosted?

Close Windowclose

Rate your experience or provide feedback on this page

Account or customer service questions?
Please user our contact form.

Need technical support?
Please visit support to ask a question

Content

rating

Layout

rating

Ease of use

rating

security code refresh image

We do not respond to comments submitted from this page directly, but we do read and analyze any feedback and will use it to help make your experience better in the future.

Close Windowclose

We were unable to retrieve the attached file

Close Windowclose

Attach and remove files

add attachmentAdd attachment
Close Windowclose

Enter the URL you would like to link to in your post

Close Windowclose

This is how you use right click RTF editing

Enable right click RTF editing option allows you to add html markup into your tutorial such as images, bulleted lists, files and more...

-- click to close --

Uploading file...