Bazı kurallara dayalı bir SQL sorgusu nasıl yapılır

2 Cevap php

Böylece metin, radyo, ve: ben birden fazla giriş elemanları var bu HTML formu var. Bunlar veritabanından daha spesifik veri çekmek amacıyla bir SQL sorgusu uygulamak için seçenekler, şartlı ürün olması amaçlanmıştır.

Örneğin, ilk giriş alanı bir metin, ikinci bir radyo düğmesi ve iki seçenekleri ile bir SELECT üçüncü. İlk, ben SQL sorgusu bir LIKE %name% cümle eklemek istiyorum. İkinci en, bir renk diyelim, bir radyo düğmesi grubu, yani veritabanı sütunu ile seçilmiş bir karşılaştıran bir WHERE color = $item eklersiniz. Üçüncü hemen hemen sadece saniye gibi olurdu.

Şimdi, ben sadece kullanmak sanırım SQL sorgusu eklemek için hangisi biliyor, ama benim soru için üç öğe, karşılaştırarak if cümleler: Bir smarter yolu var bunu yapmak için? Bu değişkenler olup olmadığını öğrenmek bir dizi gibi (ben hala çok Nevermind, burada bir if kullanıyorum).

Ben önemli ölçüde karmaşık bir şey yapmadım bu yana, zaman zaman basit şeyler programlayabilir, ama bazen, hatta basit şeyler için, ne olursa olsun ben bir şey tasarlamak için çalışıyoruz ne kadar zor, yapamam.

Bu durumda, gerçekten (hayal görselleştirmek) nasıl WHERE hükmüne, bu üç koşulu eklemek için, SQL sorgusu ile birlikte PHP kodu yapısı olacağını bilemiyorum.

Burada bana yardımcı olursa çok sevinirim. Eğer daha fazla bilgi gerekiyorsa, sadece bana bildirin.

2 Cevap

Eğer gitmek gibi sadece sql deyimi inşa edebilirsiniz.

Basit bir örnek:

$sql = "SELECT ... WHERE 1=1";      // 1=1 is just an example to get the WHERE out of the way

if (first condition / certain $_POST variable is set)
{
    $sql .= " AND LIKE %...%";
}
if (second condition)
{
    $sql .= " AND something=...";
}
// etc.

// run query

Sadece başka bir çözüm eklemek için, ben saklı yordamı kullanarak size önerebilir.

http://www.mysqltutorial.org/mysql-stored-procedure-tutorial.aspx

http://www.brainbell.com/tutorials/MySQL/Using_Stored_Procedures.htm

Sadece bir sp değerleri geçirmek ve bunun içinde nerede koşulu oluşturmak gerekir.

SQL iğneleri önlemek için PHP parametreli sorgu oluşturmak için başka bir seçenek var.

İşte bu konu hakkında bazı bağlantılar vardır.

http://us2.php.net/manual/en/security.database.php

http://www.roscripts.com/PHP_MySQL_by_examples-193.html

http://www.webmasterworld.com/php/3110596.htm

http://am.php.net/mysql_real_escape_string