fork(1) download
  1. <?php
  2.  
  3. function search_article($name_trening, $name_country, $name_city, $name_date) {
  4. $sql = "SELECT * FROM table";
  5.  
  6. $where = [];
  7. $args = [];
  8. if ($name_trening !== null) {
  9. $where[] = 'name=?';
  10. $args[] = $name_trening;
  11. }
  12. if ($name_country !== null) {
  13. $where[] = 'country=?';
  14. $args[] = $name_country;
  15. }
  16. if ($name_city !== null) {
  17. $where[] = 'city=?';
  18. $args[] = $name_city;
  19. }
  20. if ($name_date !== null) {
  21. $where[] = 'date=?';
  22. $args[] = $name_date;
  23. }
  24.  
  25. if ($where) {
  26. $sql .= " WHERE ";
  27. $sql .= join(' AND ', $where);
  28. }
  29.  
  30. // Заглушка
  31. db_query($sql, $args);
  32. }
  33.  
  34. function db_query($sql, $args) {
  35. echo "Запрос: " . $sql . "\n";
  36. echo "Аргументы: " . join(', ', $args) . "\n\n";
  37. }
  38.  
  39. search_article(null, 'b', 'c', 'd');
  40. search_article('a', null, 'c', 'd');
  41. search_article(null, null, null, 'd');
  42. search_article('a', 'b', null, null);
  43. search_article(null, null, null, null);
  44.  
Success #stdin #stdout 0.01s 52488KB
stdin
Standard input is empty
stdout
Запрос: SELECT * FROM table WHERE country=? AND city=? AND date=?
Аргументы: b, c, d

Запрос: SELECT * FROM table WHERE name=? AND city=? AND date=?
Аргументы: a, c, d

Запрос: SELECT * FROM table WHERE date=?
Аргументы: d

Запрос: SELECT * FROM table WHERE name=? AND country=?
Аргументы: a, b

Запрос: SELECT * FROM table
Аргументы: