Использование 2 одинаковых полей в 2 разных базах данных PHP

0

Я попытаюсь объяснить это так, как я могу. Я создаю функцию перевода, и она основана на каждом тексте, имеющем значение кода. Например: заголовок для определенной страницы имеет код и значение, связанное с кодом.

У меня есть 2 таблицы: переводы: где хранятся все коды и значения и таблица, где есть только сам код, и она проходит через функцию, которая берет ее через таблицу переводов:

public function T($code) {
      $value = $code;
      $db_value = $this->db->getRow("SELECT value FROM translations WHERE code = '".$code."'");
      if($db_value) {
        $value = $db_value['value'];
      }
            return $value;
        }

GetRow - это настраиваемая функция, которая выбирает один столбец из таблицы:

function getRow() {
    $func_num_args = func_num_args();
    $func_get_args = func_get_args();
    if ($func_num_args == 0) {
        return null;
    } else if ($func_num_args == 1) {
        $this->query($func_get_args[0]);
    } else {
        $args = array();
        $query = $func_get_args[0];
        unset($func_get_args[0]);
        foreach ($func_get_args as $arg) {
            if (is_string($arg) && !is_numeric($arg)) {
                $args[] = mysqli_real_escape_string($this->conn, $arg);
            } else {
                $args[] = $arg;
            }
        }
        $this->query(vsprintf($query, $args));
    }
    return ($this->rows() ? $this->fetch() : null);
}

Теперь, создав страницу администрирования для сайта, я столкнулся с проблемой, я хочу, чтобы код текстов был скрытым и отображал текст, который представляет код. Мой текущий избранный выглядит немного похоже на это: он не работает, однако он выбирает только столбцы, но не находит никаких строк:

  SELECT vc.*,
       t.code,
       t.value
  FROM vakances_card AS vc 
  JOIN translations AS t 
  ON vc.title = t.code 
  AND vc.descr = t.code
Теги:

1 ответ

0

Я не уверен, чего именно вы хотите достичь. Вы можете изменить свой запрос на

SELECT vc. *, T.code, t.value FROM vakances_card AS vc JOIN translations AS t ON vc.title= t.code AND vc.descr = t.code

К следующему запросу

SELECT vc. *, T.code, t.value FROM vakances_card AS vc LEFT JOIN translations AS t ON vc.title= t.code AND vc.descr = t.code

Или может измениться на

SELECT vc. *, T.code, t.value FROM vakances_card AS vc RIGHT JOIN translations AS t ON vc.title= t.code AND vc.descr = t.code

Надеюсь, вы получите все нужные строки.

  • 0
    Когда я делал оба этих выбора в MySQL Workbench, когда он был LEFT JOIN, все переводы были нулевыми, а когда он был RIGHT JOIN, все стороны карт были нулевыми, когда я делал INNER JOIN, он ничего не находил
  • 0
    Тогда проблема в следующей строке: vc.title = t.code AND vc.descr = t.code У вас есть что-нибудь, что соответствует в обеих таблицах? Как присоединиться vc.code = t.code Тогда это будет хорошо работать для вас.
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню