Junaid Amin
Junaid Amin

Reputation: 13

Invalid Argument Supply for foreach

I have a problem in my foreach. I am trying to get the data by category. I have some popular category on my home page. I want when the user click on the catname its show related jobs of that category its fine when data exist but data not found its give me an error invalid argument Supply for foreach.

Here is my controller:

public function catwise($catname){
        $data['jobs'] = $this->edituser_model->getBlogByname($catname); 
        $this->load->view('locwise' , $data);           
    }  

and my Model is:

public function getBlogByname($catname){
        $this->db->select('*');
        $this->db->where('catname', $catname);
        $query = $this->db->get('jobs');

      if($query->num_rows() > 0){
        return $query->result();
      } else {
        return false;
      }

    }

and my view is:

<?php if(count($jobs)): ?>
   <?php foreach ($jobs as  $row): ?> 

      <div class="job-box">
           <div class="company-logo">
      </div>

      <div class="row"> 
            <div class="col-lg-12">
                  <div class="alert alert-success alert-2" role="alert">
                            <button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">&times;</span></button>
                           Recently Posted Jobs in <?php echo $row->catname?>
                        Category</div>
        <div class="row">
                <div class="job-box">

                    <div class="description">
                        <div class="float-left">
                            <h5 class="title"><a href="<?php echo site_url('candidate/jobs_detail/' .$row->id);?>"><?php echo $row->job_title?></a></h5>
                            <div class="candidate-listing-footer">
                            <ul> 
                                    <li><i class="flaticon-pin">&nbsp;</i><?php echo $row->location?></li>
                                    <li><i class="flaticon-money">&nbsp;</i><?php echo $row->salary?></li>
                                    <li><i class="flaticon-work">&nbsp;</i><?php echo $row->timing?></li>
                                    <!--<li><i class="flaticon-honor">&nbsp;</i><?php echo $jobs->qualification?></li>
                                     <li><i class="flaticon-notepad">&nbsp;</i><?php echo $jobs->experience?></li>-->
                            </ul>&nbsp; 
                            <h6>Deadline:<?php echo $row->deadline?></h6>
                            </div>
                        </div>
                        <div class="div-right">
                            <a href="<?php echo site_url('candidate/edit/' .$row->id);?>" class="apply-button">Apply Now</a>
                            <!--<a href="#"><i class="flaticon-heart favourite"></i></a>--> 
                        </div> 
                    </div> 
                </div> 
                       </div>
                       </div><!--end row--> 
            </div> 
        </div> 
    </div>
 <?php endforeach ?>
 <?php else: ?>
  <span class="text-danger">No jobs are currently active at the moment. Please check again later. Or to look for more jobs on our website please click <a href="<?= site_url('Welcome/job_list');?>">here!</a></span><br>
 <?php endif;?>
 </div>
 </div>

Many Thanks: Junaid Amin

Upvotes: 1

Views: 27

Answers (1)

Aksen P
Aksen P

Reputation: 4599

When your model returns boolean, i.e. false, count(false) (true also) equal to 1.

echo count(false);

https://3v4l.org/ChEDK

You should return an empty array, like return [];.

Upvotes: 2

Related Questions