Basit PHP sorgu soru: GİBİ

4 Cevap php

Ben yerini zaman

$ordering = "apples, bananas, cranberries, grapes";

ile

$ordering = "apples, bananas, grapes";

Ben artık ben böyle yazdım benim sorgu tarafından iade edilmesi kızılcık istiyorum:

$query = "SELECT * from dbname where FruitName LIKE '$ordering'";

Yanlış GİBİ kullanılır, çünkü Dersin Bu işe yaramazsa. Ben GİBİ nasıl kullanılacağını tanımlamak için çeşitli kılavuzları aracılığıyla okudum ve oldukça bana mantıklı gelmiyor.

Ben sadece elma onu sınırlayarak için çalışıyor elma "" "GİBİ" için db ucunu değiştirin. Ben "," üzerinde sipariş patlayabilir ya da sorguda bunu yapmanın bir yolu var mı?

4 Cevap

GİBİ normalde, kısmen eşleşen dizeleri için kullanılır, örneğin Eğer kullanmak istiyorum

WHERE fruitname LIKE 'app%' 

'elma' ve 'elma' bulmak için.

Ne (muhtemelen) istediğiniz IN yan tümcesi, mesela

WHERE fruitname IN ('apples', 'bananas', 'grapes')

Muhtemelen olmalıdır:

SELECT * FROM database WHERE FruitName IN ('apples','bananas','grapes')

Sen dize patlayabilir ve uygun SQL dönüştürmek gerekir. Bu muhtemelen sizinle bitirmek istiyorum SQL sözdizimi:

SELECT * FROM dbname WHERE FruitName IN ('apples', 'bananas', 'grapes')

PHP kodu:

$fruits = array();

foreach (explode(', ', $ordering) as $fruit) {
    $fruits[] = "'" . mysql_real_escape_string($fruit) . "'";
}

$fruits = implode(', ', $fruits);
$sql = "SELECT * FROM dbname WHERE FruitName IN ($fruits)";

kullanmayı deneyin

SELECT * from dbname WHERE FruitName IN ('apples','bananas','grapes')

IN liste ile sorgu ve ORDER BY uzatmak gibi aynı sırayla olması sonucu gerekiyorsa

SELECT * from dbname WHERE FruitName IN ('apples','bananas','grapes') ORDER BY FruitName