ورود

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آپدیت یک رکورد در mysql بدون تغییر چند فیلد ؟



<?php?>
April 29th, 2016, 13:00
در هنگام ثبت نام از کاربر اطلاعات شخصی مثل ایمیل و یوزرنیم و پسورد و زمان ثبت نام میلادی و شمسی رو ازش گرفتم و تو دیتابیس ثبت کردم .
حالا مشکلم اینجاس که کابر که میخواد اطلاعات خودشو تو پروفایل خودش یرایش کنه < نمیخوام زمان ثبت نامش که در شروع عضویت ازش گرفتم تغییری کنه .
این کد ر برای آپدیت اطلاعاتش نوشتم برای Mysql :


if($a==1 && $b==1 && $c==1 && $d==1 && $e==1 && $f==1){
$result=$connect->prepare("UPDATE `db_user` SET `name`=?,`family`=?,`email`=?,`username`=?,`passwo rd`=?,`level`=?");
$result->bindValue(1,$signup['name']);
$result->bindValue(2,$signup['family']);
$result->bindValue(3,$signup['email']);
$result->bindValue(4,$signup['username']);
$result->bindValue(5,$signup['password']);
$result->bindValue(6,$_SESSION['level']);
if($result->execute()){
$success='اطلاعات شما با موفقیت ویرایش شد';
}
else{
header('location: profile.php');
die;
}
}


فقط مشکلی که دارم اینه که تو این دستور آپدیت من 2 تا از فیلد های , یعنی زمان میلادی و زمان شمسی رو برای آپدیت نفرستادم برای دیتابیس . چون نمیخواستم آپدیت بشن .
الان کار نمیکنه دستور آپدیتم . فک کنم مشکلش این باشه که باید همه فیلد ها رو برای آپدیت بفرستم . درسته؟
با چه دستوری بهش بفهمونم که نمیخوام دوتا از فیلد های جدولم آپدیت بشن؟
ممنون

- - - Updated - - -

حل شد مشکلم . باید از دستور شرزی استفاده بشه = WHERE

T.Toosi
April 29th, 2016, 13:02
ابتدا query را دستی sql بزنید اگر آپدیت کرد سپس $result->error را پرینت کنید.

yastheme
April 29th, 2016, 13:08
برای Update نیاز نیست همه فیلد ها رو بفرستی؛ حد اقل یه فیلد کافیه؛مور بعدی اینکه با این دستور کار هم بکنه کل یوزر ها اطلاعاتشون تغییرمی کنه؛ چون شرط نداره
از چنین ساختاری استفاده کن:
UPDATE table_name SET column1=value, column2=value2 WHERE some_column=some_value

همانطور که دوستمون هم گفتن $result->error پرینت بگیرید ببینید چه خطایی میده