1

Тема: Як перевірити чи такий рядок існує, якщо існує то як отримати його id?

Малюю кросворд, координати словомісць переводжу в json, в php роблю json_decode, та ці координати вставляю до БД в таблицю Wordplace. В цій таблиці стоїть CONSTRAINT uc_Wordplace UNIQUE (row, col, direction, wordLength). Як перед вставленням координат перевіряти чи такий рядок вже існує, якщо існує, то отримати його id, якщо не існує, то вставити його та отримати id?

//Вставляю кординати словомісць в таблицю Wordplace
    foreach($json['wordplaces'] as $item) {
        
        $stmt = $conn->prepare("INSERT INTO Wordplace (row, col, direction, wordLength) VALUES (?, ?, ?, ?)");
        $stmt->bind_param("iiii", $Wrow, $Wcol, $Wdirection, $WwordLength);

        $Wrow = $item['row'];
        $Wcol = $item['column'];
        $Wdirection = $item['direction'];
        $WwordLength = $item['wordLength'];
        $stmt->execute();
        
        //Отримую id кожного всталеного словомісця
        $Wordplace_id = $conn->insert_id;
        print "New Wordplace has id " . $Wordplace_id;
        
        $stmt->close();

2

Re: Як перевірити чи такий рядок існує, якщо існує то як отримати його id?

ТЗ погано зрозумів..
Ви не знаєте як перевірити існування певного запису в БД (PDO - MySQL) ?

3

Re: Як перевірити чи такий рядок існує, якщо існує то як отримати його id?

Даю вам шматок коду зі свого скрипта.

            $loginSearch = $this->db->prepare("SELECT login, password, COUNT(*) as count FROM users WHERE login = ?");
            $loginSearch->execute([$login]);

            $userObject = $loginSearch->fetch(PDO::FETCH_OBJ);

            if($userObject->count > 0) {

                    if(password_verify($password, $userObject->password)) {

                        setcookie('lg', $login, time() + 604800, '/');
                        setcookie('ps', $userObject->password, time() + 604800, '/');

                        return true;

                    }

            }

Якщо не зрозумієте, то поясню.

Подякували: Yola1

4

Re: Як перевірити чи такий рядок існує, якщо існує то як отримати його id?

Мені потрібно перевірити чи значення в рядку "row, col, direction, wordLength" не повторюються, якщо повторюються, то просто отримати id цього рядка, якщо ж не повторюються, то вставити нові та теж отримати його id. (MySQLi Object-oriented)

5

Re: Як перевірити чи такий рядок існує, якщо існує то як отримати його id?

Wsewlad написав:

Мені потрібно перевірити чи значення в рядку "row, col, direction, wordLength" не повторюються, якщо повторюються, то просто отримати id цього рядка, якщо ж не повторюються, то вставити нові та теж отримати його id. (MySQLi Object-oriented)

Спочатку звичайна вибірка даних, а потім
http://php.net/manual/en/mysqli-result.num-rows.php

Подякували: Wsewlad1