رایموند
5 سال پیش توسط رایموند مطرح شد
3 پاسخ

مشکل به رور رسانی پرس و جو با PHP PDO

درود دوستان...
می خوام اطلاعاتی که ارسال شده را ویرایش و به روز رسانی کنم ولی کد زیر کار نمی کند:
مشکل کجاست؟

<?php
require_once'db.php';

if (isset($_POST['update'])) {

    // مقدار پست ها

    $title=$_POST['title'];
    $buy=$_POST['buy'];
    $shop=$_POST['shop'];
    $num=$_POST['num'];
    $color=$_POST['color'];
    $war=$_POST['war'];
    $cat=$_POST['cat'];
    $des=$_POST['des'];

    // درخواست برای افزودن

    $sql = "UPDATE products SET title = :title, buy = :buy, shop = :shop, num = :num, color = :color, war = :war, cat = :cat, des = :des WHERE id = :id";

    // درخواست برای اجرای پرس و جو

    $query = $con->prepare($sql);

    // بستن پارامترها

    $query->bindValue(':title',$title);
    $query->bindValue(':buy',$buy);
    $query->bindValue(':shop',$shop);
    $query->bindValue(':num',$num);
    $query->bindValue(':color',$color);
    $query->bindValue(':war',$war);
    $query->bindValue(':cat',$cat);
    $query->bindValue(':des',$des);

    // اجرای درخواست

    $query->execute();

    // این بخش در ثبت شدن اطلاعات و نشدن آن بررسی می کند.

    $lastUpdateId = $con->lastIUpdateId();

    if ($lastUpdateId) {

        echo "<div class='alert alert-success'>اطلاعات شما با موفقیت ویرایش شد</div>";
    }else{

        echo "<div class='alert alert-danger'>خطا در ویرایش اطلاعات</div>";
    }
}

try{
    $sql = "SELECT * FROM categories";
    }catch(Exception $ex){
        $ex->getMessage();
    }

?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>افزودن محصول</title>
    <link rel="stylesheet" href="css/bootstrap.min.css">
    <link rel="stylesheet" href="css/bootstrap-rtl.min.css">
</head>
<body>
    <div class="container py-2">
        <div class="row">
            <div class="col-md-5 mx-auto">
                <form action="" method="post">
                    <div class="form-group">
                        <label for="Input1">نام محصول</label>
                        <input type="text" name="title" value="<?php echo $title;?>" class="form-control" id="Input1" placeholder="">
                    </div>
                    <div class="form-group">
                        <label for="Input2">قیمت (تومان)</label>
                        <input type="text" name="buy" value="<?php echo $buy;?>" class="form-control" id="Input2" placeholder="">
                    </div>
                    <div class="form-group">
                        <label for="Input3">فروش (تومان)</label>
                        <input type="text" name="shop" value="<?php echo $shop;?>" class="form-control" id="Input3" placeholder="">
                    </div>
                    <div class="form-group">
                        <label for="Input4">تعداد محصول</label>
                        <input type="text" name="num" value="<?php echo $num;?>" class="form-control" id="Input4" placeholder="">
                    </div>
                    <div class="form-group">
                        <label for="Input5">رنگ محصول</label>
                        <input type="text" name="color" value="<?php echo $color;?>" class="form-control" id="Input5" placeholder="">
                    <div class="form-group">
                        <label for="Input6">گارانتی محصول</label>
                        <input type="text" name="war" value="<?php echo $war;?>" class="form-control" id="Input6" placeholder="">
                    </div>
                    <div class="form-group">
                        <label for="Select1">انتخاب انبار محصول</label>
                        <select class="form-control" id="Select1" name="cat" value="<?php echo $cat;?>">
                            <option>انتخاب دسته</option>
                            <?php foreach($con->query($sql) as $output) {?>
                                <option><?php echo $output["title"];?></option>
                            <?php } ?>
                        </select>
                    </div>
                    <div class="form-group">
                        <label for="Textarea1">توضیحات محصول</label>
                        <textarea class="form-control" name="des" value="<?php echo $des;?>" id="Textarea1" rows="3"></textarea>
                    </div>
                    <button type="submit" name="update" class="btn btn-success">ثبت محصول</button>
                    <a href="index.php" class="btn btn-success">صفحه اصلی</a>
                </form>
            </div>
        </div>
    </div>
</body>
</html>

ثبت پرسش جدید
Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش آپدیت شد
1

سلام
@RaymondDragon

هم میتونید مقادیر رو توی execute بدید

 $query->execute($data);

که این دیتا میتونه یه آرایه باشه از دیتا ها

$data = [
    'buy' => $buy,
    'shop' => $shop,
    'num' => $num,
];

این یه روش
ولی مشکل کد شما اینه که توی قسمت Bind ها

$query->bindParam("category" , $category);

BindParam بنویسید
تو مقادیر ورودیشم 2 نقطه نذارید!

این اشتباهه

    $query->bindValue(':shop',$shop);

درست این هست

$query->bindParam("shop" , $shop);

امید وارم تونسته باشم کمکی کنم


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش مطرح شد
1

@Alimotreb
ممنون از جوابت.. اما زودتر این مشکل رو حل کردم...
متاسفانه راکت دکمه حذف سوال نداره که سوالی که مطرح کردم رو حذف کنم چون زودتر به جوابت رسیدم...


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
0

سلام
@RaymondDragon

خواهش میکنم دوست من
درست میگید
این قابلیت رو نداره. انشالا در آینده اضافه بشه.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام