Zagnieżdzanie warunków php w zapytaniach mysql

0

Cześć,
potrzebuję użyć konstrukcji typu:

$sql='SELECT odpowiednie_kolumny
FROM tabela
WHERE ((id = 1) AND (nazwa="ktoś")
//i tutaj warunek php że:
if ($zmienna != all) { AND (zmienna = $zmienna))

Chodzi o to, że jeśli zmienna jest różna od wartości all to kolejny warunek ma być sprawdzany na zasadzie kolumna = $zmienna.

Czy taka konstrukcja jest w ogóle możliwa?

Przykład

 $sql = 'SELECT `mantis_bug_table`.`id`, `mantis_custom_field_string_table`.`value`, `mantis_bug_table`.`date_submitted`, `mantis_bug_table`.`last_updated`, `mantis_bug_table`.`status`'
        . ' FROM `mantis_custom_field_string_table` LEFT JOIN `mantis_bug_table` ON `mantis_bug_table`.`id` = `mantis_custom_field_string_table`.`bug_id`'
        . ' WHERE (((`mantis_bug_table`.`project_id` = 199)OR(`mantis_bug_table`.`project_id` = 196)OR(`mantis_bug_table`.`project_id` = 146)) AND (`mantis_custom_field_string_table`.`field_id` = 82)) AND (`mantis_bug_table`.`date_submitted` > "'. $date1 .'")AND (`mantis_bug_table`.`date_submitted` < "'. $date2 .'") 

.'if ($status == "all")
{}
else
{
print 'AND(`mantis_bug_table`.`status` = "'. $status .'")';
}
.'
ORDER BY `mantis_bug_table`.`id` DESC';
1

a nie można po prostu:

$sql = "SELECT * FROM tabela WHERE costam=666";
if (ulozenie_planet_sie_zgadza()) {
  $sql .= "AND drugiecostam='".jakasFunkcja($parametr)."'";
}
$sql .= "ORDER BY trzeciecostam DESC";

Wybacz, nie chciało mi się tego Twojego podłużnego kopiować.

W ogóle co to za pomysły. Przypisanie zmiennej, w środku jakieś ify, a nawet print [!]. Łączyć stringi przecież umiesz (wstawiasz np. $date2), więc nie ogarniam.

I zamiast pisać:

if ($cos == 1) {}
else {
  // instrukcje
}

napisz:

if ($cos !=1) {
  // instrukcje
}
0

No tak, rozwiązania najprostsze są najlepsze. Nie potrzebnie kombinowałem jak koń pod górkę. Wielkie dzięki za pomoc.

PS. Wiem, wiem jak pisać if z != tylko na razie nie było tam instrukcji, które miały się wykonać.

Temat można zamknąć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1