Saya telah mencoba kode di bawah ini untuk memilih gambar dari folder yang berbeda menggunakan pernyataan if...else

 $username=$_SESSION['username'];
 $db = mysqli_connect('localhost', 'root', '', 'registrations');

 $selectlevels="SELECT level from users WHERE username='$username'";
 $getlevels=mysqli_query($db,$selectlevels);

 while($lvls=mysqli_fetch_array($getlevels)){

 if ($lvls['level']=='1') {
 $dire="Annotated Dataset/images1/";
 $images = glob($dire. '*.{jpg,jpeg}', GLOB_BRACE);

 shuffle($images);
 $images=array_slice($images,0,6);

 return $images;
 }

 else{
  $dire="Annotated Dataset/images/";
  $images = glob($dire. '*.{jpg,jpeg}', GLOB_BRACE);

 shuffle($images);
 $images=array_slice($images,0,6); 
 return $images;
  }

  $_SESSION['images']=$images;
  }

$_SESSION['images'] digunakan dalam kode selanjutnya.

Ketika saya mencoba mengeksekusi kode saya, saya tidak dapat mengambil folder. dan di konsol, tidak ada kesalahan. Saya memeriksa kueri, itu berfungsi dengan baik. Saya pikir, saya melakukan sesuatu yang salah dengan pernyataan if else. Dapatkah seseorang membantu saya keluar dengan masalah ini.

-1
Uviiii 26 Oktober 2019, 14:58

1 menjawab

Jawaban Terbaik

Kode setelah returns tidak akan dieksekusi. Jika Anda ingin $_SESSION['images']=$images; Anda berfungsi, Anda harus menghapus dua return $images;

Anda juga dapat menghindari pengulangan kode dengan mengubah pernyataan if menjadi:

if ($lvls['level']=='1') {
   $dire="Annotated Dataset/images1/";
} else {
  $dire="Annotated Dataset/images/";
}
$images = glob($dire. '*.{jpg,jpeg}', GLOB_BRACE);
shuffle($images);
$images=array_slice($images,0,6);

Karena hanya jalur gambar yang tampaknya berubah.

0
brombeer 26 Oktober 2019, 12:28