Veritabanı sql php bulunan bir değerini belirlemek [kapalı]

5 Cevap php

Ben bir veritabanından bilgi çekecek dinamik bir tablo oluşturduk. Ancak, içinde hiçbir şey olabilir 1 alandır, ya da bunun içinde (birden fazla onay kutularını) bilgi bir grup olabilir. Ben ilk tablo görünümü (ayrıntılar tam db alan bilgileri gösterecektir) yoğunlaşmaya çalışıyorum. Ne şu anda sahip şudur:

if $row['extras'] = ''{
print '';
} else {
print 'Y';

Bu kod ile, oldukça için ihtiyacı olandan, TÜM alanlarda "Y" görüntüler. Ben doğru yolda veya tamamen tabanından mıyım?

5 Cevap

yerine çek eşitlikten daha (bir eşittir işareti ile) bir yazım hatası, kod atar (2 eşittir işareti) olduğunu düşünüyorum

Sen olmak null kontrol etmelisiniz:

if ($row['extras'] == null)
{
    print '';
}
else
{
   print 'Y'
};

Böyle sql sorgu ile test edebilirsiniz

SELECT * FROM table WHERE field IS NOT NULL; 

Yerine bu kodu deneyin:

if (trim($row['extras']) != '')
{
    echo 'Y';
}

Alternatif olarak böyle bir şey gider, bir SQL sorgusu verebilir:

SELECT * FROM yourTable WHERE extras NOT LIKE '';

: göstermek pasajı sizin gerçek kodu değil (ve dolayısıyla risk onların zaman kırmızı balıkları kovalayan kaybeden cevaplamak kişi), ben de senin gerçek sorunu görüntüler eminim ki ihanet, hangi sözdizimsel geçersiz ise

if ($foo = '') {
   echo "empty";
} else {
   echo "contains " . strlen($foo) . " characters";
}

Bu kod baskılar contains 0 characters. hata tam olarak bu tür sol tarafında sürekli işlenen ile karşılaştırmalar yazmaya götürdü:

if ('' = $foo) {
   echo "empty";
} else {
   echo "contains " . strlen($foo) . " characters";
}

Bu beklenmedik değerlere sahip oluyor tercih olduğu, bir hata neden olur.