• 1 رای - 3 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
جلوگیری از وارد کردن مجدد یک مقدار به جدول
#1
سلام دوستان،

من تو سوالات قبلی و راهنمایی های شما عزیزان تونستم کاری کنم که اطلاعات وارد query مشخص شده بشه اما یک چیزی که مهم هست اینه که:
حالا چیکار کنم وقتی که چیزی در اون فرم وارد نشده بود دیگه آپدیت نکنه اون query رو! آخه الان با کد زیر وقتی که چیزی هم در فیلد Name وارد نکنی query رو آپدیت می کنه و این باعث میشه که اگه مقداری در اون فیلد بود دیگه نباشه!

کد پی‌اچ‌پی:
if (isset($_POST['do'])) {

if (!
$_POST['old_username']) if (!$_POST['old_password'])
$error "<p align=\"center\">Please fill your current fields.</p>";
if (
$_POST['new_password'] != $_POST['confirm_password']) $error "Passwords do not match.";

if (
$error == "") {
$password $_POST['password'];
$username $_POST['username'];
$name $_POST['name'];
$location $_POST['location'];
$email $_POST['email'];

mysql_query("UPDATE `users` SET `Value`='$new_password' WHERE `Name`='admin_password'") or die(mysql_error());
mysql_query("UPDATE `users` SET `Value`='$new_username' WHERE `Name`='admin_username'") or die(mysql_error());
mysql_query("UPDATE `users` SET `Value`='$location' WHERE `Name`='admin_location'") or die(mysql_error());
mysql_query("UPDATE `users` SET `Value`='$email' WHERE `Name`='admin_email'") or die(mysql_error());
mysql_query("UPDATE `users` SET `Value`='$name' WHERE `Name`='admin_name'") or die(mysql_error());
echo
"<b>Login details have been changed.</b>";
}else{
echo
"<b>$error</b>";
}



موفق باشید ... Angel
غایب
  پاسخ
تشکر شده توسط :
#2
اول اینکه کوئریت اشتباهه
می تونی با یه کوئری چن تا فیلد رو آپدیت کنی:
http://www.w3schools.com/sql/sql_update.asp

ثانیا:
چک کن اگه تکست فیلد مثلا 1 isset شده باشه کوئری ها اجرا بشه

ثالثا :
باید آی دی اون ردیف رو که می خوای آپدیت کنی وارد کنی
بنابراین قبل از آپدیت چک کن که چنین آیدی در پایگاه داده وجود داره یا نه
اگه داشت آپدیت کنه
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#3
محمد آقا می تونی مثال php بزنی؟
غایب
  پاسخ
تشکر شده توسط :
#4
برای کوئری می تونی اینجوری عمل کنی :
کد پی‌اچ‌پی:
$sql 'UPDATE `tbl_post` SET 
post_text` = \'2\',
`post_username` = \'2\',
`post_title` = \'2\',
`post_userid` = \'2\',
`post_date` = \'2009-03-18\',
`post_type` = \'2\'
WHERE `post_id` = 1 LIMIT 1;'


به جای 2 از داده های خودت استفاده کن
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : cyletech
#5
محمد جان فکر کنم این چیزی باشه که من میخوام جز آخرین خط:

کد پی‌اچ‌پی:
1 LIMIT 1

اگه میشه در مورد کد بالا توضیح بده و کارش رو دقیق برام مشخص کن اگه امکانش هست. Blush
غایب
  پاسخ
تشکر شده توسط :
#6
کد پی‌اچ‌پی:
WHERE `post_id` = 1 LIMIT 1;'; 

اینجا میگیم که اونجایی رو آپدیت کن که آی دی سطر برابر با یکه

در واقع شما باید آی دی هر سطر رو وارد کنید.

limit 1 رو نزارین هم کار می کنه
درواقه می گه فقط یکی رو آپدیت کن

اگه چن تا آی دی داشته باشه که یکی باشن مثلا 10 آی دی 1 داشته باشی و اینو بزاری آخرش فقط آخری رو آپدیت می کنه ولی اگه نزاری کلا هر 10 تا رو آپدیت می کنه.
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط : cyletech
#7
نمی دونم چرا متوجه اینی که نوشتی نمیشم آقا محمد:

کد پی‌اچ‌پی:
$sql 'UPDATE `tbl_post` SET 
`post_text` = \'2\',
`post_username` = \'2\',
`post_title` = \'2\',
`post_userid` = \'2\',
`post_date` = \'2009-03-18\',
`post_type` = \'2\'
WHERE `post_id` = 1 LIMIT 1;'


البته یک کاراکتر "`" کم گذاشته بودی درستش کردم. حالا من query های زیر رو دارم و هرچی میخوام مقدارش هارو جایگزین کنم نمی دونم چطوری میشه! میشه خودتون اعمال کنید روی زیر تا ببینم؟

کد پی‌اچ‌پی:
mysql_query("UPDATE `users` SET `Value`='$new_password' WHERE `Name`='admin_password'") or die(mysql_error());
mysql_query("UPDATE `users` SET `Value`='$new_username' WHERE `Name`='admin_username'") or die(mysql_error());
mysql_query("UPDATE `users` SET `Value`='$location' WHERE `Name`='admin_location'") or die(mysql_error());
mysql_query("UPDATE `users` SET `Value`='$email' WHERE `Name`='admin_email'") or die(mysql_error());
mysql_query("UPDATE `users` SET `Value`='$name' WHERE `Name`='admin_name'") or die(mysql_error()); 


در ضمن من نمیخوام که فقط یکی از اون ده تا آیدیم آپدیت بشه که! من می خوام اگه مقداری برای وارد نشده بود دیگه آپدیت نکنه! حالا ممکنه از 10 تا آیدی 57 تاش مقداری وارد شده باشه و 3 تاش نه! اون موقع چی؟
غایب
  پاسخ
تشکر شده توسط :
#8
من کلا متوجه نشدم چی کار می خوای بکنی

قشنگ کد html صفحه + php + ساختار جدول یوزر رو بزار تا ببینم مشکلت چیه
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#9
محمد جان من فیلد نام بر فرض دارم که مخصوص جدول users هست و الان اون جدول مقدار Alex به خودش گرفته ولی الان توی صفحه برای ویرایش جدول اگه اون فیلد نام خالی باشه و روی ارسال کلیک بشه چون دستورات طوری نوشته شده که اگر هم فیلد خالی بود باز آپدیت کن جدول رو و الان حتی اگه خالی باشه جدول آپدیت میشه و مقدارش خالی میشه! من میخوام اگه فیلد خالی بود دیگه آپدیت جدول مخصوص خودش رو!

کد رو من بدلیل زیاد بود و زشت کردن انجمن شما آپلودش کردم:
لینک: http://www.uplod.ir/download.php?file=913513
غایب
  پاسخ
تشکر شده توسط :
#10
خوب این که کاری نداره
شرط بزار
اگه این یا این یا این یا این یا.... خالی بودن خطا بده وگرنه کوئری اجرا بشه
کد پی‌اچ‌پی:
if(empty($_POST['tf1']) || 
   empty(
$_POST['tf2']) || 
   empty(
$_POST['tf3']) || 
   empty(
$_POST['tf4']))
{
    
//error
}
else
{
    
//insert

همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان