Harsh Kumar Ответов: 1

Строковое значение запроса не извлекается


Я не могу прочитать идентификатор из строки запроса.
Когда я нажимаю ссылку Изменить, я правильно читаю строку без каких-либо проблем, но когда я обновляю идентификатор данных, он не извлекается, и, следовательно, мой запрос не работает.

    $id = $_GET['id'];
set null when clicking update button. thats why query is not running


Что я уже пробовал:

<?php
include 'master/header.php';
include 'config.php';
include './functions/functions.php';
?>
<?php
    $id = "";
if (isset($_GET['id'])) {
    $id = $_GET['id'];
}
$sql = "SELECT * FROM user WHERE id =$id ";
$result = $conn->query($sql);
$row = mysqli_fetch_assoc($result);


if (isset($_POST['submit'])) {
    $firstName = $_POST['firstName'];
    $lastName = $_POST['lastName'];
    $email = $_POST['email'];
    $username = $_POST['username'];
    $password = $_POST['password'];
    $query = "UPDATE user SET firstname='$firstName',lastName='$lastName',email='$email',username='$username',password='$password' WHERE id= $id";
    echo $query;
    $updateResult = $conn->query($query);
    if (!$updateResult ) {
        die("qery not works" . mysqli_error($conn));
    } else {
        header("location: index.php");
    }
}
?>
<h1 class="text-center">Edit User</h1>
<form action="edit.php" method="post">
    <div class="container">
        <div class="row">
            <input type="hidden" class="" for="" value="<?php

?>">
            <label class="col-lg-6" for="firstName">First name</label>
            <input type="text" class="form-control col-lg-6" maxlength="25" name="firstName" placeholder="Enter First name" value="<?php
                   if (isset($row['firstname'])) {
                       echo $row['firstname'];
                   }
                   ?>" >
        </div>
        <div class="row">
            <label class="col-lg-6" for="lastName">Last name</label>
            <input type="text" maxlength="25" class="form-control col-lg-6" name="lastName" placeholder="Enter Last name" value="<?php
            if (isset($row['lastName'])) {
                echo $row['lastName'];
            }
                   ?>" >
        </div>
        <div class="row">
            <label class="col-lg-6" maxlength="50" for="lastName">Email</label>
            <input type="text" class="form-control col-lg-6" name="email" placeholder="Enter Email" value="<?php
            if (isset($row['email'])) {
                echo $row['email'];
            }
                   ?>" >
        </div>
        <div class="row">
            <label class="col-lg-6" for="username">Username</label>
            <input type="text" maxlength="50" class="form-control col-lg-6" name="username" placeholder="Enter username" value="<?php
            if (isset($row['username'])) {
                echo $row['username'];
            }
                   ?>">
        </div>
        <div class="row">
            <label for="password" class="col-lg-12">Password</label>
            <input type="password" class="form-control col-lg-12" name="password" placeholder="Enter password" value="<?php
            if (isset($row['password'])) {
                echo $row['password'];
            }
                   ?>"> 
        </div>
        <div class="row">
            <label for="confirmPassword" class="col-lg-12">Confirm Password</label>
            <input type="password" class="form-control col-lg-12" name="confirmPassword" placeholder="confirm password" > 
        </div>
        <div class="row">
            <input type="submit" class="btn btn-primary" name="submit" value="update" >
        </div>
    </div>
</form>

Harsh Kumar

$идентификатор = параметр $_GET['идентификатор'];
установите значение null при нажатии кнопки Обновить. вот почему запрос не выполняется

1 Ответов

Рейтинг:
2

Kornfeld Eliyahu Peter

значение ¶

Возвращает FALSE при сбое. Для успешного выбора, показа, описания или объяснения запросов mysqli_query () вернет объект mysqli_result. Для других успешных запросов mysqli_query () вернет TRUE.

Теперь очевидно, что в строке $conn->query($sql) вы получили логический ответ (вероятно, ошибка)...
Поскольку запрос может возвращать что-то отличное от результирующего набора, вы должны проверить его возвращаемое значение и действовать соответственно...


Harsh Kumar

я не в состоянии понять пожалуйста объясните

Kornfeld Eliyahu Peter

Вы должны отладить свой код...
То, что я (и документация) утверждаю, что query() не всегда будет возвращать результирующий набор, как вы предполагали. Он может потерпеть неудачу и вернуть FALSE. Таким образом, его возвращаемое значение имеет тип переменной, но вы предположили, что это всегда результирующий набор, и передали его следующему методу... К сожалению, он получил логическое значение (вероятно, FALSE), поэтому mysqli_fetch_assoc() потерпел неудачу...
Вы должны проверить возвращаемое значение из query (), прежде чем двигаться дальше...