close ad
 
Important WebAssist Announcement
open ad
View Menu

Technical Support Forums

Free, outstanding support from WebAssist and your colleagues

rating

Nested repeat regions, use value from parent repeat region to filter nested

Thread began 12/24/2018 11:15 am by p.kelembeck232519 | Last modified 9/17/2019 3:33 pm by Ray Borduin | 1490 views | 26 replies |

p.kelembeck232519

Nested repeat regions, use value from parent repeat region to filter nested

I have managed to nest a repeat region within a parent repeat region but I am struggling to get a parent column value to the nested region so I can filter.

I have tried to generate a variable using 'Add Variable' but on creating a variable with this I get the error message '$client_id is an invalid variable name; it does not appear in the SQL'. If this isn't the correct way to generate a variable to share between parent region and nested region please let me know.

If it is the correct way what am I doing wrong? Thank for your help (I have attached present code)

Sign in to reply to this post

Ray BorduinWebAssist

You didn't attach any files.

The parameter name shouldn't have any special characters in the SQL statement.

Try using "clientid" as the parameter.

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

p.kelembeck232519

Nested repeat regions, variable......., solved but now I'm getting duplicate values in nested results.

Originally Said By: Ray Borduin
  You didn't attach any files.

The parameter name shouldn't have any special characters in the SQL statement.

Try using "clientid" as the parameter.  


Hi Ray, thanks very much for getting back to me in the holiday period. I did attempt your suggestion but got the same error. I solved the issue though by creating a variable manually e.g.

<?php
$clientid = ($RsTest->getColumnVal("id"));
settype($clientid, "integer");
?>

Then I placed variable $clientid in the query of the record set for the nested repeat region.

The problem I have now is that I am getting duplicate results in the nested repeat region. I am not the greatest coder in the world but I presume it's because I am using two different record sets and two different repeaters. And the nested repeat region is forced to loop again per parent record.

So my question now is, is there a simple command I can place here to spot and cancel/kill duplicates?

or

Should I use a join tables in one record set to unify the tables in one query? I have read that this solves the duplicate problem in the forums?

Please let me know what you think.

Many thanks.

I have attached updated code if you need to view.

Attached Files
test.php
Sign in to reply to this post

Ray BorduinWebAssist

Here is an updated version of your page built with the extensions without hand coding to show you what I was referring to.

What duplicated results are you getting? The fmid shouldn't be duplicated, is it? I'm not sure why it wasn't working properly. It appeared to me that it should have been working as you had it, but look at the page I have attached and provide more detail about what is being repeated that shouldn't be. Maybe include a URL where I can see the problem so I can understand it better.

Attached Files
test.php
Sign in to reply to this post
Did this help? Tips are appreciated...

p.kelembeck232519

Nested repeat regions, variable......., solved but now I'm getting duplicate values in nested results.

Thanks Ray, I see what you mean. I should've created the variable in the query before attempting to use add variable.

Here is the duplication error example:

https://www.appsevo.com/Filemaker-Email-Campaigns/test.php

The duplicates are happening on the nested repeat region (under the heading 'Colours'). I still don't know why.

This is the same file you sent back.

Please let me know what you think. Thanks

Sign in to reply to this post

Ray BorduinWebAssist

You could probably just update your SQL statement from:

$nested->setQuery("SELECT * FROM test_repeat, fm_emails_est_tsk_client WHERE test_repeat.fmid = ?");

to:

$nested->setQuery("SELECT * FROM test_repeat WHERE test_repeat.fmid = ?");

You should already have the values from the fm_emails_est_tsk_client table in the other recordset, so it doesn't need to be added to this one.

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

p.kelembeck232519

Nested repeat regions, variable......., solved but now I'm getting duplicate values in nested results.

Great!!! Thanks Ray.

That worked perfectly.

Sign in to reply to this post

JBWebWorks

I think my problem relates to this post so here is my question.
I have a photos page and photos categories and I want the photos categories to repeat and under each categories are images in that category. And I want the images to repeat.

My code for the two recordsets

<?php
$Recordset1 = new WA_MySQLi_RS("Recordset1",$connsqli,0);
$Recordset1->setQuery("SELECT * FROM photos_category, photos WHERE photos.photos_category = photos_category.category_name ORDER BY photos_category.category_name");
$Recordset1->execute();
?>
<?php
$Recordset2 = new WA_MySQLi_RS("Recordset2",$connsqli,0);
$Recordset2->setQuery("SELECT * FROM photos WHERE photos.photos_category = ?");
$Recordset2->bindParam("s", "".($Recordset1->getColumnVal("category_name")) ."", "-1"); //var1
$Recordset2->execute();
?>




And the code for the repeat regions

<?php
$wa_startindex = 0;
while(!$Recordset1->atEnd()) {
$wa_startindex = $Recordset1->Index;
?>
<span class="category"><?php echo($Recordset1->getColumnVal("category_name")); ?></span><br />
<br />
<?php
$wa_startindex = 0;
while(!$Recordset2->atEnd()) {
$wa_startindex = $Recordset2->Index;
?>
<div align="center"><a href="photos/<?php echo($Recordset2->getColumnVal('photos_file')); ?>" rel="lightbox" title="<?php echo($Recordset2->getColumnVal("photos_alt")); ?>"><img src="photos/<?php echo($Recordset2->getColumnVal("photos_file")); ?>" /></a></div>
<?php
$Recordset2->moveNext();
}
$Recordset2->moveFirst(); //return RS to first record
unset($wa_startindex);
unset($wa_repeatcount);
?>
<?php
$Recordset1->moveNext();
}
$Recordset1->moveFirst(); //return RS to first record
unset($wa_startindex);
unset($wa_repeatcount);
?>



This only shows the repeat from Recordset1 for any category that has images but the images do not repeat and the only image shown is in multiple categories?

Help Please.

Sign in to reply to this post

Dave BuchholzBeta Tester

$recordset2 needs to be placed inside the loop like so for your code to work

<?php
$wa_startindex = 0;
while(!$Recordset1->atEnd()) {
$wa_startindex = $Recordset1->Index;
?>
<?php
$Recordset2 = new WA_MySQLi_RS("Recordset2",$connsqli,0);
$Recordset2->setQuery("SELECT * FROM photos WHERE photos.photos_category = ?");
$Recordset2->bindParam("s", "".($Recordset1->getColumnVal("category_name")) ."", "-1"); //var1
$Recordset2->execute();
?>
<span class="category"><?php echo($Recordset1->getColumnVal("category_name")); ?></span><br />
<br />
<?php
$wa_startindex = 0;
while(!$Recordset2->atEnd()) {
$wa_startindex = $Recordset2->Index;
?>
<div align="center"><a href="photos/<?php echo($Recordset2->getColumnVal('photos_file')); ?>" rel="lightbox" title="<?php echo($Recordset2->getColumnVal("photos_alt")); ?>"><img src="photos/<?php echo($Recordset2->getColumnVal("photos_file")); ?>" /></a></div>
<?php
$Recordset2->moveNext();
}
$Recordset2->moveFirst(); //return RS to first record
unset($wa_startindex);
unset($wa_repeatcount);
?>
<?php
$Recordset1->moveNext();
}
$Recordset1->moveFirst(); //return RS to first record
unset($wa_startindex);
unset($wa_repeatcount);
?>
Sign in to reply to this post

JBWebWorks

Thanks Dave,
It is working but it is repeating the region the number of times that there are images in the database. So if category one has four images, it repeats four times, etc.

I have two tables in db.
photos_category with two cols - category_ID and category_name
photos with four cols -photos_ID photos_file photos_alt and cat_ID

<?php
$Recordset1 = new WA_MySQLi_RS("Recordset1",$connsqli,0);
$Recordset1->setQuery("SELECT photos.photos_ID, photos.photos_file, photos.photos_alt, photos.cat_ID, photos_category.category_ID, photos_category.category_name FROM photos, photos_category WHERE photos_category.category_ID = photos.cat_ID ");
$Recordset1->execute();
?>



And the loop

<?php
$wa_startindex = 0;
while(!$Recordset1->atEnd()) {
$wa_startindex = $Recordset1->Index;
?>
<?php
$Recordset2 = new WA_MySQLi_RS("Recordset2",$connsqli,0);
$Recordset2->setQuery("SELECT * FROM photos WHERE photos.cat_ID = ? ORDER BY photos.photos_ID");
$Recordset2->bindParam("i", "".($Recordset1->getColumnVal("category_ID")) ."", "-1"); //var1
$Recordset2->execute();
?>
<span class="category"><?php echo($Recordset1->getColumnVal("category_name")); ?></span><br />
<br />
<div align="center">
<?php
$wa_startindex = 0;
while(!$Recordset2->atEnd()) {
$wa_startindex = $Recordset2->Index;
?>
<a href="photos/<?php echo($Recordset2->getColumnVal('photos_file')); ?>" rel="lightbox" title="<?php echo($Recordset2->getColumnVal("photos_alt")); ?>"><img src="photos/<?php echo($Recordset2->getColumnVal("photos_file")); ?>" /></a>
<?php
$Recordset2->moveNext();
}
$Recordset2->moveFirst(); //return RS to first record
unset($wa_startindex);
unset($wa_repeatcount);
?>
</div>
<?php
$Recordset1->moveNext();
}
$Recordset1->moveFirst(); //return RS to first record
unset($wa_startindex);
unset($wa_repeatcount);
?>
Sign in to reply to this post
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...