Warning: Invalid argument supplied for foreach() di PHP

0
Operator Modulus
Operator Modulus

Pamulang – Kebiasaan ngeblok warning biar ga nongol dan akhirnya risih aja pas gunain foreach, nongol itu warning Invalid argument supplied for foreach(). Menururt gw sih kayaknya itu warning nongol gegara nilai array itu jangan NULL alias kosong. Kasus gw disini coba gw jabarin biar enak ngintip kodenya..

Class buat manggil data news..

class News extends Database {
  function list_news(){
    $debe = new Database();
	$con = $debe->debe();
	$qr = mysqli_query($con, "SELECT * FROM news ORDER BY id DESC");
	if($qr->num_rows > 0){
	  while($rw = mysqli_fetch_array($qr))
	  $data[]=$rw;
	  return $data;
	} else {
	  echo "Coming Soon";
	}
  }
}

Kode awal yg gw gunain akhirnya muncul itu warning..

<?php
  $a = new News();
  $aa = $a->list_news();
  foreach($aa as $qr){
?>
  <div class="bla slideberita">
    <div class="isber lbs">
      <p class="tglnws"><?=$qr['tgl'];?></p>
      <?=$qr['isi'];?>
    </div>
  </div>
<?php } ?>

Karena kebiasaan di fungsi itu gw masupin fungsi biar warning ga nongol, jadinya gw pikir kode ini ga masalah. Dan ternyata pas dieksekusi nongol dah itu warning.. Lanjut ke bagian ngatasin masalahnya…

<?php
  if(is_array($aa) || is_object($aa)){
    ...  
  }
?>

Kode lengkapnya..

<?php
  $a = new News();
  $aa = $a->list_news();
  if(is_array($aa) || is_object($aa)){
    foreach($aa as $qr){
?>
  <div class="bla slideberita">
    <div class="isber lbs">
      <p class="tglnws"><?=$qr['tgl'];?></p>
      <?=$qr['isi'];?>
    </div>
  </div>
<?php }} ?>

DONE!!! Semoga bermanfaat, salam 🙂

LEAVE A REPLY

Please enter your comment!
Please enter your name here