Как выбрать определенные c строк из 2 баз данных - PullRequest
0 голосов
/ 26 мая 2020

Эти запросы работают должным образом. Он получает все из таблиц main_tb и second_tb.

    if ($isSet != 'false') {
        $DB_con->query("INSERT INTO second_tb (art_id, dat_se, dat_seID, userID, createdOn) VALUES ('$id_art', '$dat_se', '$dat_seID', '".$_SESSION['userID']."', NOW())");
        $sql = $DB_con->query("SELECT second_tb.id, name, dat_se, DATE_FORMAT(second_tb.createdOn, '%Y-%m-%d') AS createdOn FROM second_tb INNER JOIN users ON second_tb.userID = users.id ORDER BY second_tb.id DESC LIMIT 1");
    } else {
        $DB_con->query("INSERT INTO main_tb (art_id, userID, dat_se, createdOn) VALUES ('$id_art', '".$_SESSION['userID']."','$dat_se',NOW())");
        $sql = $DB_con->query("SELECT main_tb.id, name, dat_se, DATE_FORMAT(main_tb.createdOn, '%Y-%m-%d') AS createdOn FROM main_tb INNER JOIN users ON main_tb.userID = users.id ORDER BY main_tb.id DESC LIMIT 1");
    }

    $data = $sql->fetch_assoc();

Но я хотел бы выбирать только строки из main_tb и second_tb, где art_id = '$ id_art', и если он существует
$ id_art - это intenger. Итак, я попробовал это.

    if ($isSet != 'false') {
        $DB_con->query("INSERT INTO second_tb (art_id, dat_se, dat_seID, userID, createdOn) VALUES ('$id_art', '$dat_se', '$dat_seID', '".$_SESSION['userID']."', NOW())");
        $sql = $DB_con->query("SELECT  second_tb.id,second_tb.art_id, name, dat_se, DATE_FORMAT(second_tb.createdOn, '%Y-%m-%d') AS createdOn FROM second_tb WHERE second_tb.art_id = '$id_art' INNER JOIN users ON second_tb.userID = users.id ORDER BY second_tb.id DESC LIMIT 1");
    } else {
        $DB_con->query("INSERT INTO main_tb (art_id, userID, dat_se, createdOn) VALUES ('$id_art', '".$_SESSION['userID']."','$dat_se',NOW())");
        $sql = $DB_con->query("SELECT main_tb.id,main_tb.art_id, name, dat_se, DATE_FORMAT(main_tb.createdOn, '%Y-%m-%d') AS createdOn FROM main_tb WHERE main_tb.art_id = '$id_art' INNER JOIN users ON main_tb.userID = users.id ORDER BY main_tb.id DESC LIMIT 1");
    }

    $data = $sql->fetch_assoc();

Но я получаю следующую ошибку.

Fatal error: Uncaught Error: Call to a member function fetch_assoc() on bool in C:\wamp64\www\blog\det_art.php on line 97

Может кто-нибудь мне с этим помочь?

1 Ответ

0 голосов
/ 26 мая 2020

Предложение WHERE следует после JOIN, а не перед ним.

$sql = $DB_con->query("
    SELECT  second_tb.id,second_tb.art_id, name, dat_se, DATE_FORMAT(second_tb.createdOn, '%Y-%m-%d') AS createdOn 
    FROM second_tb 
    INNER JOIN users ON second_tb.userID = users.id 
    WHERE second_tb.art_id = '$id_art' 
    ORDER BY second_tb.id DESC 
    LIMIT 1");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...