$stmt = $DB_con->prepare('SELECT islemtipi FROM islemler ORDER BY islem_id DESC LIMIT 0,3');
$stmt->execute();
if($stmt->rowCount() > 0) {
while($row=$stmt->fetch(PDO::FETCH_ASSOC))
{
extract($row);
?>
<?php
$data = array(
(object)[ 'id' => 1, 'durum' => $islemtipi],
(object)[ 'id' => 1, 'durum' => $islemtipi],
(object)[ 'id' => 1, 'durum' => $islemtipi],
);
$arr_col = array_column($data, 'durum');
if( implode('', $arr_col) == str_repeat('aktif', 3) ){
echo "3 tane aktif mevcut! kontrol et.";
}
}
}
?>işlemleri yukarıdaki gibi hallettim. fakat şöyle bir sorun var. son gelen 3 işlem de 2 pasif 1 aktif olursa ekrana 1 tane aktif yazıyor. benim istediğim ise 3 tane peş peşe aktif olursa ekrana yazması. bunu nasıl yapabilirim. yani son işlemi çektik bu son 3 işlemin 3 ü aktif ise ekrana çıktı versin. eğer 2si pasif 1 aktif veya tam tersi olursa ekrana birşey yazmasın gibi. işlem tipi 3 te 3 olursa çıktı versin istiyorum.
Yardım konusu ve istenen işlem
@mikropiks; tarafından aşağıdaki şekilde çözümlenmiştir. Kendisine bu konuda Teşekkürlerimi sunuyorum.
// islemler tablosundan son 3 kaydı çek, id değerine göre en son eklenenden başla
$stmt = $DB_con->prepare('SELECT id, islemtipi FROM islemler ORDER BY id DESC LIMIT 3');
$stmt->execute();
// Varsayılan Durum False
$status = false;
// Gelen veri kontrol. Veri var ise işleme devam et.
if( $stmt->rowCount() ){
// Gelen tüm veriyi fetchAll ile dizeleştir. Dizenin 'islemtipi' kolon değerilerini al.
$arr_col = array_column($stmt->fetchAll(PDO::FETCH_ASSOC), 'islemtipi');
// 'islemtipi' değerlerinin boşluksuz string'e çevir. String değerin tamamı aktif ise $status = true yap.
if( implode('', $arr_col) == str_repeat('aktif', 3) ){
$status = true;
}
}
// Status true ise işlem yap
if( $status ){
echo 'Son 3 işlem aktif!';
}