مشکل ثبت محصول

- 2 هفته پیش
توسط رایموند دراگون آپدیت شد
رایموند دراگون ( 34748 تجربه )
2 هفته پیش

درود دوستان..
من جدولی ایجاد کردم با نام kala ...
ولی مشکلی که داره بخش ثبت محصول کار نمی کنه و ارسال نمی کنه ...
همچون پروژه برای اتصال به پایگاه PDO استفاده می کنه...
کد زیر:

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

        $title = $_POST['title'];
        $name = $_POST['name'];
        $buy = $_POST['buy'];
        $shop = $_POST['shop'];
        $number = $_POST['number'];
        $color = $_POST['color'];
        $warranty = $_POST['warranty'];
        $decs = $_POST['desc'];
        $category = $_POST['category'];

        if($title == '' OR $desc == '' OR $category == ''){
            header("location:index.php?error=7070");
            exit();
        }else{
            $query = $conn->query("INSERT INTO `kala` (`pro_cat`, `pro_name`, `pro_buy`, `pro_shop`, `pro_number`, `pro_color`, `pro_warranty`, `pro_desc`) VALUES ('$category', '$name', '$buy', '$shop', '$number', '$color', '$warranty', '$decs')");
            $count = $query->rowcount();
            $row = $query->fetch();
            if($count->0){
                header("location:index.php?successfully=9090");
                exit();
            }
        }

    }
بهترین پاسخ انتخاب شده توسط رایموند دراگون
Alimotreb
2 هفته پیش

سلام

فکر کنم کوئریتون رو اشتباه زدید
کد زیر رو تست کنید احتمالا مشکلتون بر طرف شه

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

        $title = $_POST['title'];
        $name = $_POST['name'];
        $buy = $_POST['buy'];
        $shop = $_POST['shop'];
        $number = $_POST['number'];
        $color = $_POST['color'];
        $warranty = $_POST['warranty'];
        $decs = $_POST['desc'];
        $category = $_POST['category'];

        if($title == '' OR $desc == '' OR $category == ''){
            header("location:index.php?error=7070");
            exit();
        }else{
            $query = $conn->prepare("INSERT INTO kala (pro_cat, pro_name, pro_buy, pro_shop, pro_number, pro_color, pro_warranty, pro_desc) VALUES (:category, :name, :buy, :shop, :number, :color, :warranty, :decs)");
            $query->bindParam("category" , $category);
            $query->bindParam("name" , $name );
            $query->bindParam("buy" , $buy);
            $query->bindParam("shop" , $shop );
            $query->bindParam("number" , $number);
            $query->bindParam("color" , $color );
            $query->bindParam("warranty" , $warranty );
            $query->bindParam("decs" , $decs );
            $query->execute();
            if($query->execute()){
                header("location:index.php?successfully=9090");
                exit();
            }
        }

    }
Alimotreb ( 23567 تجربه )
2 هفته پیش

سلام

فکر کنم کوئریتون رو اشتباه زدید
کد زیر رو تست کنید احتمالا مشکلتون بر طرف شه

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

        $title = $_POST['title'];
        $name = $_POST['name'];
        $buy = $_POST['buy'];
        $shop = $_POST['shop'];
        $number = $_POST['number'];
        $color = $_POST['color'];
        $warranty = $_POST['warranty'];
        $decs = $_POST['desc'];
        $category = $_POST['category'];

        if($title == '' OR $desc == '' OR $category == ''){
            header("location:index.php?error=7070");
            exit();
        }else{
            $query = $conn->prepare("INSERT INTO kala (pro_cat, pro_name, pro_buy, pro_shop, pro_number, pro_color, pro_warranty, pro_desc) VALUES (:category, :name, :buy, :shop, :number, :color, :warranty, :decs)");
            $query->bindParam("category" , $category);
            $query->bindParam("name" , $name );
            $query->bindParam("buy" , $buy);
            $query->bindParam("shop" , $shop );
            $query->bindParam("number" , $number);
            $query->bindParam("color" , $color );
            $query->bindParam("warranty" , $warranty );
            $query->bindParam("decs" , $decs );
            $query->execute();
            if($query->execute()){
                header("location:index.php?successfully=9090");
                exit();
            }
        }

    }
رایموند دراگون ( 34748 تجربه )
2 هفته پیش

@Alimotreb
کار نکرد...آزمایشی امتحان کردم توی پایگاه داده چیزی ثبت نمی کنه..

Alimotreb ( 23567 تجربه )
2 هفته پیش

سلام
یه دور دیگه تست بگیر رفیق
چون اون موقعی که شما دیدی من پاسخم رو ویرایش کردم یه قسمت از کدم رو
مجدد یه تست بگیر ازش

رایموند دراگون ( 34748 تجربه )
2 هفته پیش

درود...بازم امتحان کردم کار نکرد...
ولی یه سری تغییر دادم که کار کرد ولی نمی تونه اطلاعات توی پایگاه داده ثبت کنه ...

if($_POST) {
    $title = $_POST['title'];
    $buy = $_POST['buy'];
    $shop = $_POST['shop'];
    $number = $_POST['number'];
    $color = $_POST['color'];
    $warranty = $_POST['warranty'];
    $category = $_POST['category'];
    $desc = $_POST['desc'];

    $sql = "INSERT INTO `products` (`cat`, `title`, `buy`, `shop`, `number`, `color`, `warranty`, `desc`) VALUES ('$category', '$title', '$buy', '$shop', '$number', '$color', '$warranty', '$desc', 1)";
    if($db->query($sql) === TRUE) {
        echo "<p>با موفقیت ثبت شد</p>";

    } else {
        echo "Error " . $sql . ' ' . $db->connect_error;
    }

    $db->close();
}

خطا:

.Error INSERT INTO `products` (`cat`, `title`, `buy`, `shop`, `number`, `color`, `warranty`, `desc`) VALUES ('انتخاب کنید', 'یادگیری برنامه نویسی', '1000', '1000', '', 'قرمز', '24', 'تست', 1)
GHM ( 835 تجربه )
2 هفته پیش

@RaymondDragon کوئری مشکل داره. توی جدول محصولات 8تا فیلد داری ولی میخوایی 9تا مقدار وارد کنی. جور درنمیاد

رایموند دراگون ( 34748 تجربه )
2 هفته پیش

@GHM
کوئری اصلاح کردم ولی کار نمی کنه...
عکس :
<img src="http://s9.picofile.com/file/8350799500/phpmyadmin_tbl_structure_php.png">

دقیقا ۸ تا داره...

اینم کد کوئری اصلاح شده:

if($_POST) {
    $title = $_POST['title'];
    $buy = $_POST['buy'];
    $shop = $_POST['shop'];
    $number = $_POST['number'];
    $color = $_POST['color'];
    $warranty = $_POST['warranty'];
    $cat = $_POST['cat'];
    $desc = $_POST['desc'];

    $sql = "INSERT INTO `products` (`cat`, `title`, `buy`, `shop`, `number`, `color`, `warranty`, `desc`) VALUES ('$cat', '$title', '$buy', '$shop', '$number', '$color', '$warranty', '$desc', 1)";
    if($db->query($sql) === TRUE) {
        echo "<p>با موفقیت ثبت شد</p>";

    } else {
        echo "Error " . $sql . ' ' . $db->connect_error;
    }

    $db->close();
}
Alimotreb ( 23567 تجربه )
2 هفته پیش

سلام
@RaymondDragon

اگر با روش PDO قراره کانکت بشی به دیتابیس باید متد های
prepare و BindParam و اینا رو اجرا کنید که نمونه اش رو هم گذاشتم
خط به خط دیباگ کنید
از متد
extract() هم برای $_POST هم استفاده کنید که پارامتر هایی که داره ارسال میشه رو به صورت متغیر هم داشته باشید

رایموند دراگون ( 34748 تجربه )
2 هفته پیش

@Alimotreb
درود..
الان روش mysqli وصل شدم...

Alimotreb ( 23567 تجربه )
2 هفته پیش

سلام
@RaymondDragon

توی کدی که گذاشتید یه 1 آخرشه که میشه 9 تا مقدار که میخوایید بریزید توی 8 تا
اون یکش رو پاک کنید و تست بگیرید

رایموند دراگون ( 34748 تجربه )
2 هفته پیش

@Alimotreb
اون id رو میگی برای نمایش تعداد لیست هست اونم وارد کردم کار نکرد...
کد زیر:

if($_POST) {
    $id = $_POST['id'];
    $title = $_POST['title'];
    $buy = $_POST['buy'];
    $shop = $_POST['shop'];
    $number = $_POST['number'];
    $color = $_POST['color'];
    $warranty = $_POST['warranty'];
    $cat = $_POST['cat'];
    $desc = $_POST['desc'];

    $sql = "INSERT INTO `products` (`id`,`cat`, `title`, `buy`, `shop`, `number`, `color`, `warranty`, `desc`) VALUES ('$id','$cat', '$title', '$buy', '$shop', '$number', '$color', '$warranty', '$desc', 1)";
    if($db->query($sql) === TRUE) {
        echo "<p>با موفقیت ثبت شد</p>";

    } else {
        echo "خطا در ثبت اطلاعات پایگاه داده " . $sql . ' ' . $db->connect_error;
    }

    $db->close();
}
GHM ( 835 تجربه )
2 هفته پیش

@RaymondDragon مشکلتون برطرف شد؟

رایموند دراگون ( 34748 تجربه )
2 هفته پیش

@GHM
آره حل شد ... ممنون

برای ارسال پاسخ باید وارد سایت شوید