Soru pdo sorgulamadan eşit veya büyük arama mevcut değil ise en büyük değeri almak istiyorum

Bu konuyu okuyanlar

Gecekule

Öğrenci
Katılım
7 Ocak 2015
Mesajlar
39
Reaksiyon puanı
1
Puanları
8
Merhaba,

PDO ile sorgulama yaparken WHERE sutun_adi>=? ile 33 değeri ariyoruz ancak sütunda en yüksek değer 32 olduğu için 0 değer dönecektir. Bu durumda bana en yükseğini yani 32 yi versin istiyorum.
WHERE sutun_adi>=? OR sutun_adi<=? böyle denedim ama sonuç alamadım

Yardımcı olursanız memnum olurum
Teşekkürler
 

hakancalis

Profesör
Katılım
6 Ocak 2021
Mesajlar
1,256
Çözümler
1
Reaksiyon puanı
960
Puanları
113
PHP:
$query = $conn->prepare("SELECT * FROM tablo_adi ORDER BY id DESC LIMIT 1");
$query->execute();
$data = $query->fetch(PDO::FETCH_OBJ);
echo $data->id;
Bu şekilde istediğin tabloda ki en son verinin id değerini alarak işlem yapabilirsin ya da
PHP:
$last_id = $conn->lastInsertId();
Böyle veritabanına eklenen en son verinin id değerini alabilirsin hangisi işini görürse.
 

Gecekule

Öğrenci
Katılım
7 Ocak 2015
Mesajlar
39
Reaksiyon puanı
1
Puanları
8
Cevap için teşekkür ederim,
ancak istediğim bu değil

veritabanında x markadan 8,16,32,64 değerli ürünler var diyelim
sorguda WHERE sutun_adi >=?
->execute(['7']) diye aradığımda bana 8 i verecek
->execute(['17']) diye aradığımda bana 32 i verecek
->execute(['65']) diye aradığımda bana sonuç yok diyecek işte ben tam bu durumda madem 65 üzeri yok o zaman bana en yüksek olan 64 satırı versin istiyorum.

VEYA

MAX(sutun_adi) AS maxdeger
ile x markadan en yüksek değeri alıyorum ancak bu verdiği değerin ID si nedir nasıl alırım
$row['maxdeger'].$row['id'] değer ID alamıyorum bu durumda gerçek ID nasıl alınır?
 

enable

Profesör
Katılım
4 Ağu 2009
Mesajlar
1,090
Reaksiyon puanı
9
Puanları
38
Aslında @hakancalis verdiği cevap da doğru, benim anladığım sen dışardan bir değer gireceksin o değer içerde yoksa sana o grubun en yüksek değerini getirecek.
Bunun için şöyle bir sorgu kullanabilirsin.


PHP:
$query = $db->exec("SELECT *, IF( sutun_adi = "$gelendeger", "sutun_adi", max(sutun_adi)) AS sonuc FROM tablo")->fetch(PDO::FETCH_ASSOC);
echo $query['sonuc'];
 
Üst