• Как вставить в запрос данные о названии отдела?

    vfreelancer
    @vfreelancer
    php
    как оптимизировать код:
    например, вместо
    if (..) {
    } else {
    exit();
    }
    делать так:
    if (! ..) {
    exit();
    }
    .. а здесь случай true
    так вы избавитесь от 5 вложенных if и код будет на одном отступе
    Ответ написан
    Комментировать
  • Как вставить в запрос данные о названии отдела?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    оптимизировать - https://methodpoet.com/return-early-or-if-statement/
    думаю при такой линейной логике вставить нужную проверку не должно быть проблемой
    почитать - https://habr.com/ru/post/565652/
    <?php
    $fprint_id = (int)$_GET['fprint_id'];
    $device_uid = $_GET ['device_uid'];
    $serialnumber = (int)$_GET['serialnumber'];
    
    if($fprint_id < 1 || $fprint_id > 128) {
        exit('ID  должен быть в диапазоне от 1 до 127');
    }
    
    //Проверить введенный f_id в диапазоне от 1 до 127
    $stmtfprint = $conn->prepare('SELECT * FROM users WHERE fprint_id = ? LIMIT 1');
    $stmtfprint->bind_param('s', $fprint_id);
    $stmtfprint->execute();
    $resultfprint = $stmtfprint->get_result()->fetch_all();
    if($resultfprint) {
        exit('Этот ID  уже существует!');
    }
    
    //существует ли такой же введенный fID, если нет продолжить
    $stmtSerial = $conn->prepare('SELECT * FROM users WHERE serialnumber = ? LIMIT 1');
    $stmtSerial->bind_param('i', $serialnumber);
    $stmtSerial->execute();
    $resultSerial = $stmtSerial->get_result()->fetch_all();
    if($resultSerial) {
        exit('Серийный номер уже занят!');
    }
    
    //существует ли такой же SERIALNUMBER, если нет продолжить
    $stmtdevice_uid = $conn->prepare('SELECT * FROM users WHERE device_uid = ? LIMIT 1');
    $stmtdevice_uid->bind_param('s', $device_uid);
    $stmtdevice_uid->execute();
    $resultdevice_uid = $stmtdevice_uid->get_result()->fetch_all();
    if($resultdevice_uid != true) {
        exit('Данный отдел  не существует!');
    }
    
    //существует ли такой же ОТДЕЛ, если нет продолжить
    $stmtadd_fid = $conn->prepare('SELECT * FROM `users` WHERE `add_fid` = 1 LIMIT 1');
    $stmtadd_fid->execute();
    $resultadd_fid = $stmtadd_fid->get_result()->fetch_all();
    if($resultadd_fid) {
        exit('Нельзя добавить более одного ID  за раз');
        //если где-то значение add_fid = 1 - ошибка, иначе продолжить
    }
    
    //НАДО ЗАГОТОВИТЬ  И ВСТАВИТЬ В ЗАПРОС ДАННЫЕ О НАЗВАНИИ ОТДЕЛА (ОНО СВЯЗАНО С DEV_UID)
    $sqlINSERTquery = "INSERT INTO users ( fprint_id, user_date, device_uid, device_dep, del_fid , add_fid) 
        VALUES ($fid, CURDATE(), $device_uid, $dev_name, 0, 1)";
    // $db->query($sqlINSERTquery);
    echo('Запись начата');
    Ответ написан
    2 комментария
  • Как обновить значение в таблице по заданному параметру?

    @nozzy
    Symfony, Laravel, SQL
    Ты забыл подставить данные в запрос и выполнить сам запрос
    public function updateDevMode(){
                $devices_dep = "YOUR_TABLE_NAME";
                $device_mode=htmlspecialchars(strip_tags($this->device_mode));
                $id=htmlspecialchars(strip_tags($this->id));
                $sqlQuery = "UPDATE $devices_dep SET device_mode=$device_mode WHERE id=$id";
                $this->db->query($sqlQuery);
    
                if($this->db->affected_rows > 0){
                    return true;
                    }
                    return false;   
                }
    Ответ написан
    Комментировать