/    Sign up×
Community /Pin to ProfileBookmark

end div inside foreach

hi there
I’ll start with my code

[code=php]
<?php if(isset($cats)): ?>
<?php foreach($cats as $cat): ?>
<div class=”section-div”>
<div class=”box-container paging”></div>
<div class=”sec-div-title”>
<h2><?php echo $cat->description; ?></h2>
</div>
<div class=”sec-div-a”>
<div class=”box-container”>
<div id=”TabbedPanels<?php echo $cat->cat_id; ?>” class=”TabbedPanels”>
<ul class=”TabbedPanelsTabGroup”>
<li class=”TabbedPanelsTab” tabindex=”0″>1</li>
<li class=”TabbedPanelsTab” tabindex=”0″>2</li>
<li class=”TabbedPanelsTab” tabindex=”0″>3</li>
</ul>
<div class=”TabbedPanelsContentGroup”>
<?php $i = 1; ?>
<?php foreach($sites as $site): ?>
<?php if($site->cat_id == $cat->cat_id): ?>
<?php if($i == 1 || $i == 11 || $i == 21): echo ‘<div class=”TabbedPanelsContent”>’; endif; ?>
<a href=”<?php echo $site->link; ?>”>
<img src=”<?php echo base_url().’assets/uploads/sites_logo/’.$site->photo; ?>” alt=”” width=”80″ height=”30″/>
</a>
<?php if($i == 10 || $i == 20 || $i == 30): echo ‘</div>’; endif; ?>
<?php $i++; ?>
<?php endif; ?>
<?php endforeach; ?>
</div>
</div>
</div>
</div>
</div>
<div class=”section-div-btm”></div>
</div>
<?php endforeach; ?>
<?php endif; ?>
[/code]

in this section in my code

[code=php]
<?php $i = 1; ?>
<?php foreach($sites as $site): ?>
<?php if($site->cat_id == $cat->cat_id): ?>
<?php if($i == 1 || $i == 11 || $i == 21): echo ‘<div class=”TabbedPanelsContent”>’; endif; ?>
<a href=”<?php echo $site->link; ?>”>
<img src=”<?php echo base_url().’assets/uploads/sites_logo/’.$site->photo; ?>” alt=”” width=”80″ height=”30″/>
</a>
<?php if($i == 10 || $i == 20 || $i == 30): echo ‘</div>’; endif; ?>
<?php $i++; ?>
<?php endif; ?>
<?php endforeach; ?>
[/code]

here I get the sites under category
I open the div if only $i = 1 or 11 or 21
and close the div if $i = 10 or 20 or 30
but I want to close the div if there is no more sites under the category regardless of the value of $i
how can I do this??

to post a comment
PHP

5 Comments(s)

Copy linkTweet thisAlerts:
@simplypixieNov 05.2012 — You need to find out how many records you have from your query and then compare $i to that number. I can't see your query so can't give exact help, but say you have got the num_rows and allocated that number to a variable $total_rows, you would just add this in
[code=php]if($i == 10 || $i == 20 || $i == 30 || $i == $total_rows): echo '</div>'; endif;[/code]

You can also do a much more simple if statement by checking for a remainder when $i is divided by 10 (i.e. if 10 divided by 10 = 0 then you are on the 10th record):

[code=php]if ($i%10 == 0 || $i == $total_rows)[/code]
Copy linkTweet thisAlerts:
@Mohammed_ZayanauthorNov 05.2012 — here I have 2 query

one for the category

and one for the sites

the first query is
[code=php]
$query = "SELECT cat_id,description FROM dalil_cats";
[/code]


the second is
[code=php]
$sites_query = "SELECT cat_id,link,photo FROM dalil";
[/code]


if I get the num_rows for the result of $sites_query I'll have the number of all sites

I view the sites under category

and I want to close the div in 2 conditions if
[code=php]
$i%10 == 0 && there is no more sites under the category
[/code]
Copy linkTweet thisAlerts:
@simplypixieNov 05.2012 — In which case, why not run your $sites_query within the while / foreach loop for your $query and then you can just get the sites per category (using the category id) and will be able to easily solve your problem.
Copy linkTweet thisAlerts:
@Mohammed_ZayanauthorNov 05.2012 — can you give me an example?
Copy linkTweet thisAlerts:
@simplypixieNov 05.2012 — Not exactly as I don't have your full code (as in I don't know how or where you are running your queries) but within this[code=php]<?php if(isset($cats)): ?>
<?php foreach($cats as $cat): ?>[/code]

You would do your query here
×

Success!

Help @Mohammed_Zayan spread the word by sharing this article on Twitter...

Tweet This
Sign in
Forgot password?
Sign in with TwitchSign in with GithubCreate Account
about: ({
version: 0.1.9 BETA 5.18,
whats_new: community page,
up_next: more Davinci•003 tasks,
coming_soon: events calendar,
social: @webDeveloperHQ
});

legal: ({
terms: of use,
privacy: policy
});
changelog: (
version: 0.1.9,
notes: added community page

version: 0.1.8,
notes: added Davinci•003

version: 0.1.7,
notes: upvote answers to bounties

version: 0.1.6,
notes: article editor refresh
)...
recent_tips: (
tipper: @AriseFacilitySolutions09,
tipped: article
amount: 1000 SATS,

tipper: @Yussuf4331,
tipped: article
amount: 1000 SATS,

tipper: @darkwebsites540,
tipped: article
amount: 10 SATS,
)...