@@ 551-569 (lines=19) @@ | ||
548 | ||
549 | // get names wheres and joins |
|
550 | $names_where = ''; |
|
551 | if ($names !== null) { |
|
552 | if (!is_array($names)) { |
|
553 | $names = array($names); |
|
554 | } |
|
555 | ||
556 | $sanitised_names = array(); |
|
557 | foreach ($names as $name) { |
|
558 | // normalise to 0. |
|
559 | if (!$name) { |
|
560 | $name = '0'; |
|
561 | } |
|
562 | $sanitised_names[] = '\'' . $this->db->sanitizeString($name) . '\''; |
|
563 | } |
|
564 | ||
565 | if ($names_str = implode(',', $sanitised_names)) { |
|
566 | $return['joins'][] = "JOIN {$this->metastringsTable->getTableName()} msn on n_table.name_id = msn.id"; |
|
567 | $names_where = "(msn.string IN ($names_str))"; |
|
568 | } |
|
569 | } |
|
570 | ||
571 | // get values wheres and joins |
|
572 | $values_where = ''; |
|
@@ 573-591 (lines=19) @@ | ||
570 | ||
571 | // get values wheres and joins |
|
572 | $values_where = ''; |
|
573 | if ($values !== null) { |
|
574 | if (!is_array($values)) { |
|
575 | $values = array($values); |
|
576 | } |
|
577 | ||
578 | $sanitised_values = array(); |
|
579 | foreach ($values as $value) { |
|
580 | // normalize to 0 |
|
581 | if (!$value) { |
|
582 | $value = 0; |
|
583 | } |
|
584 | $sanitised_values[] = '\'' . $this->db->sanitizeString($value) . '\''; |
|
585 | } |
|
586 | ||
587 | if ($values_str = implode(',', $sanitised_values)) { |
|
588 | $return['joins'][] = "JOIN {$this->metastringsTable->getTableName()} msv on n_table.value_id = msv.id"; |
|
589 | $values_where = "({$binary}msv.string IN ($values_str))"; |
|
590 | } |
|
591 | } |
|
592 | ||
593 | if ($names_where && $values_where) { |
|
594 | $wheres[] = "($names_where AND $values_where AND $access)"; |