| @@ 451-495 (lines=45) @@ | ||
| 448 | ||
| 449 | break; |
|
| 450 | ||
| 451 | case FIELD_TYPE_STRING: |
|
| 452 | ||
| 453 | if (is_null($row['param1'])) |
|
| 454 | { |
|
| 455 | array_push($clause_filter, |
|
| 456 | 'r.record_id in ' . |
|
| 457 | '(select e.record_id ' . |
|
| 458 | 'from tbl_events e, tbl_field_values fv ' . |
|
| 459 | 'where fv.event_id = e.event_id and ' . |
|
| 460 | 'fv.field_id = ' . $row['field_id'] . ' and ' . |
|
| 461 | 'fv.value_id is null and ' . |
|
| 462 | 'fv.is_latest = 1)'); |
|
| 463 | } |
|
| 464 | else |
|
| 465 | { |
|
| 466 | switch (DATABASE_DRIVER) |
|
| 467 | { |
|
| 468 | case DRIVER_MYSQL50: |
|
| 469 | $concat = "concat('%', sf.string_value, '%')"; |
|
| 470 | break; |
|
| 471 | case DRIVER_ORACLE9: |
|
| 472 | $concat = "concat(concat('%', sf.string_value), '%')"; |
|
| 473 | break; |
|
| 474 | case DRIVER_MSSQL2K: |
|
| 475 | $concat = "'%' + sf.string_value + '%'"; |
|
| 476 | break; |
|
| 477 | case DRIVER_PGSQL80: |
|
| 478 | $concat = "'%' || sf.string_value || '%'"; |
|
| 479 | break; |
|
| 480 | default: ; // nop |
|
| 481 | } |
|
| 482 | ||
| 483 | array_push($clause_filter, |
|
| 484 | 'r.record_id in ' . |
|
| 485 | '(select e.record_id ' . |
|
| 486 | 'from tbl_events e, tbl_field_values fv, tbl_string_values sv, tbl_string_values sf ' . |
|
| 487 | 'where fv.event_id = e.event_id and ' . |
|
| 488 | 'fv.field_id = ' . $row['field_id'] . ' and ' . |
|
| 489 | 'fv.value_id = sv.value_id and ' . |
|
| 490 | 'sf.value_id = ' . $row['param1'] . ' and ' . |
|
| 491 | 'sv.string_value like ' . $concat . ' and ' . |
|
| 492 | 'fv.is_latest = 1)'); |
|
| 493 | } |
|
| 494 | ||
| 495 | break; |
|
| 496 | ||
| 497 | case FIELD_TYPE_MULTILINED: |
|
| 498 | ||
| @@ 497-541 (lines=45) @@ | ||
| 494 | ||
| 495 | break; |
|
| 496 | ||
| 497 | case FIELD_TYPE_MULTILINED: |
|
| 498 | ||
| 499 | if (is_null($row['param1'])) |
|
| 500 | { |
|
| 501 | array_push($clause_filter, |
|
| 502 | 'r.record_id in ' . |
|
| 503 | '(select e.record_id ' . |
|
| 504 | 'from tbl_events e, tbl_field_values fv ' . |
|
| 505 | 'where fv.event_id = e.event_id and ' . |
|
| 506 | 'fv.field_id = ' . $row['field_id'] . ' and ' . |
|
| 507 | 'fv.value_id is null and ' . |
|
| 508 | 'fv.is_latest = 1)'); |
|
| 509 | } |
|
| 510 | else |
|
| 511 | { |
|
| 512 | switch (DATABASE_DRIVER) |
|
| 513 | { |
|
| 514 | case DRIVER_MYSQL50: |
|
| 515 | $concat = "concat('%', sf.string_value, '%')"; |
|
| 516 | break; |
|
| 517 | case DRIVER_ORACLE9: |
|
| 518 | $concat = "concat(concat('%', sf.string_value), '%')"; |
|
| 519 | break; |
|
| 520 | case DRIVER_MSSQL2K: |
|
| 521 | $concat = "'%' + sf.string_value + '%'"; |
|
| 522 | break; |
|
| 523 | case DRIVER_PGSQL80: |
|
| 524 | $concat = "'%' || sf.string_value || '%'"; |
|
| 525 | break; |
|
| 526 | default: ; // nop |
|
| 527 | } |
|
| 528 | ||
| 529 | array_push($clause_filter, |
|
| 530 | 'r.record_id in ' . |
|
| 531 | '(select e.record_id ' . |
|
| 532 | 'from tbl_events e, tbl_field_values fv, tbl_text_values tv, tbl_string_values sf ' . |
|
| 533 | 'where fv.event_id = e.event_id and ' . |
|
| 534 | 'fv.field_id = ' . $row['field_id'] . ' and ' . |
|
| 535 | 'fv.value_id = tv.value_id and ' . |
|
| 536 | 'sf.value_id = ' . $row['param1'] . ' and ' . |
|
| 537 | 'tv.text_value like ' . $concat . ' and ' . |
|
| 538 | 'fv.is_latest = 1)'); |
|
| 539 | } |
|
| 540 | ||
| 541 | break; |
|
| 542 | } |
|
| 543 | } |
|
| 544 | } |
|