SQL sorgusu ve preg_match

2 Cevap php

Sql sorgusu ve php ile sizin yardımınıza ihtiyacımız var.

I have to pieces of code here:
1.

$sql = "SELECT SUBSTR(n.`title`, 1,1) FROM node n WHERE n.`type` = 'type1'";
$results = db_query($sql);
while ($fields = db_fetch_array($results)) {
  foreach($fields as $key => $value) {
    echo $value;
  }
}

Bu gibi Yukarıda kod önce benim makale başlıkları mektupları (tipi, başlık - - düğüm, sütunlar tablo) - döndürür NHDKFLF ...

2.

if (preg_match ('/A/i', $string)) {
  echo ('Contains letter A'); //
}
else {
  echo ('Nothing'); //
}

Dize bazı harfler içeriyorsa ve ikinci bölümü denetler.

Şimdi soru bu iki kod parçalarını birleştirmek nasıl? Ben DB veri çekme ve belli harf olup olmadığını nasıl kontrol anlamına gelir.

Şimdiden teşekkürler.

2 Cevap

İki seçenek aklıma geliyor: Şimdi ne yaptığınızı yapın, ya da aynı anda iki yapmak SQL yeniden yazmak.

Seçenek 1:

$sql = "SELECT SUBSTR(n.`title`, 1,1) FROM node n WHERE n.`type` = 'type1'";
$results = db_query($sql);
while ($fields = db_fetch_array($results)) {
  foreach($fields as $key => $value) {
    if (preg_match ('/A/i', $value)) {
       echo ('Contains letter A'); //
    } else {
       echo ('Nothing'); //
    }
  }
}

Seçenek 2:

$sql = "SELECT SUBSTR(n.`title`, 1,1) FROM node n WHERE n.`type` = 'type1' AND SUBSTR(n.`title`, 1,1) = 'A' ";

Projenizin detayları kalanı bağlı olarak bu işlemek için daha iyi bir yolu muhtemelen vardır.

Neden sadece istediğiniz olanlar için sorgulamak değil mi?

... where SUBSTR(n.`title`, 1,1) = 'A' ...

Eğer sorgu dışında, kodunuzu filtre gerekiyorsa, o zaman:

foreach($fields as $key => $value) {
    if (preg_match ('/A/i', $value)) {
        ...
}