PDA

View Full Version : چرا بعضی ستون های جدول غیر قابل تغییر هستن؟



Amin-rz
جمعه 27 فروردین 1395, 05:50 صبح
سلام.
من یه جدول mysql تو هاستم ساختم و با php بهش وصل میشم.
این جدول 7 تا ستون داره که متغیر های int و txt داخلشون میذارم.
مشکلی که برای من پیش اومده اینه که بعضی ستون های جدول اصلا با دستور آپدیت بروز نمیشن.
مثلا ستون دوم و سوم txt هست.ستون دوم آپدیت میشه.ستون سوم با همون دستور قبلی اصلا آپدیت نمیشه.
معلومه که دستوراتی که تو php نوشتم درسته و مشکل از دیتابیس و جدول هست.
ولی این چه مشکلیه که در ارتباط با php بوجود میاد؟
حتی برای دو ستون از جدول که int هستن هم یکی آپدیت میشه اونیکی نه.
چه راهکاری به نظرتون میرسه؟:متفکر:
اضافه کنم که فقط ستون اول key هست.
با تشکر.

H:Shojaei
جمعه 27 فروردین 1395, 17:04 عصر
کد ها رو بگذارید و یه عکس از دیتا و ساختار جدول اینطوری نمیشه راهنمایی کرد

mroveissi
یک شنبه 29 فروردین 1395, 15:36 عصر
سوالتون نیاز به راهنمایی بیشتری داره :-)

Amin-rz
دوشنبه 30 فروردین 1395, 06:54 صبح
http://uupload.ir/files/xsxx_snap1.png

http://uupload.ir/files/scm5_snap2.png

اینم کد آپدیت :



dbconnect();

function update(){

mysql_query("UPDATE telegram_table SET channel_rate='8' WHERE channel_id= $channel_id ");
mysql_query("UPDATE telegram_table SET cate='2' WHERE channel_id= $channel_id ");

}

function dbconnect(){

$connection=mysql_connect ("*****","*******","******") or die ('Failed to connect to database');
mysql_query("SET NAMES 'utf8'", $connection);
mysql_query("SET CHARACTER SET 'utf8'", $connection);
mysql_query("SET character_set_connection = 'utf8'", $connection);
mysql_select_db ("skinerir_telegram");

}




با این کد channel_rate آپدیت میشه ولی cat آپدیت نمیشه.هر دوتا هم int هستن.
ستون channel_invite هم آپدیت نمیشه ولی channel_followers عوض میشه.در حالی که هر دوتا text هستن.:متفکر:

H:Shojaei
دوشنبه 30 فروردین 1395, 07:53 صبح
آپدیت های روی یک سطر رو با یک کوئری انجام بدین با این صورت:

mysql_query("UPDATE telegram_table SET cate='2',channel_rate='8' WHERE channel_id= $channel_id ");
ظاهرا مشکل نداره کدها! کوئری رو به شکل بالا بزنید ببینید درست نمیشه!

H:Shojaei
دوشنبه 30 فروردین 1395, 07:54 صبح
cat رو اشتباه نوشتید تو کوئری دوم!

Amin-rz
سه شنبه 31 فروردین 1395, 07:20 صبح
بله اینجا اشتباه نوشتم.ولی حتی درستش هم می نویسم یا خودش رو تکی بخوام کوئری بدم بازم عوض نمیشه.:ناراحت:

H:Shojaei
سه شنبه 31 فروردین 1395, 07:36 صبح
اگر مهم نیست جدول حذفش کنید دوباره بسازیدش...
اصلا ربطی نداره خوب که ویرایش نشه مشکل ساختاری چیزی باید باشه!

Farshid007
سه شنبه 31 فروردین 1395, 07:43 صبح
از کلاس mysqli استفاده کنید چرا که mysql منسوخ شده است

H:Shojaei
چهارشنبه 01 اردیبهشت 1395, 13:44 عصر
از کلاس mysqli استفاده کنید چرا که mysql منسوخ شده استبستگی به ورژن php داره که استفاده میکنن...
هرچند باید از این توابع استفاده نکنن ولی اگر مشکل از این مورد باشه خطا میده ولی خطایی نیست!

Farshid007
چهارشنبه 01 اردیبهشت 1395, 14:40 عصر
بستگی به ورژن php داره که استفاده میکنن...
هرچند باید از این توابع استفاده نکنن ولی اگر مشکل از این مورد باشه خطا میده ولی خطایی نیست!
بله میدونم !!!
اصن ربطی به اونا نداره کلاس MYSQLi
گفتم منم یچی گفته باشم:لبخند:

Amin-rz
دوشنبه 06 اردیبهشت 1395, 04:44 صبح
دوستان از MYSQLi هم استفاده کردم.نمیدونم چه مرگشه.تو phpmyadmin سایتم دستورات وارد می کنم اعمال میشه ولی با php دستوراتmysql میفرستم انجام نمیشه.فقط هم دستورات update و delet انجام نمیشن.

Farshid007
دوشنبه 06 اردیبهشت 1395, 15:11 عصر
شاید با اون یوزری که به mySQL وصل شدید اجازه این دستورات صلب شده باشه
از قسمت user account تو صفحه اصلی phpmyAdmin بررسی کنید
متوجه منظورم شدید؟؟

vahidmoghadam
دوشنبه 06 اردیبهشت 1395, 17:36 عصر
دوست عزیز فیلد cat از نوع integer است و باید در کوئری مقدارش به این صورت نوشته شود : cat=2 نه '2'=cat

ضمنا همیشه از این دستور برای کوئری استفاده کن که بتونی اگر خطایی در اجرای کوئری بود ببینیش :

mysqli_query($link, $query) or die('Query failed: ' . mysqli_error());
البته این برای mysqli هست برای mysqli این میشه :

mysql_query($query) or die('Query failed: ' . mysql_error());

Amin-rz
سه شنبه 07 اردیبهشت 1395, 17:42 عصر
دوست عزیز فیلد cat از نوع integer است و باید در کوئری مقدارش به این صورت نوشته شود : cat=2 نه '2'=cat

ضمنا همیشه از این دستور برای کوئری استفاده کن که بتونی اگر خطایی در اجرای کوئری بود ببینیش :

mysqli_query($link, $query) or die('Query failed: ' . mysqli_error());
البته این برای mysqli هست برای mysqli این میشه :

mysql_query($query) or die('Query failed: ' . mysql_error());
اروری نمیده.فقط رو جدول اعمال نمیشه.

شاید با اون یوزری که به mySQL وصل شدید اجازه این دستورات صلب شده باشه
از قسمت user account تو صفحه اصلی phpmyAdmin بررسی کنید
متوجه منظورم شدید؟؟

تیک همه مجوزها رو برای یوزرم زدم.

vahidmoghadam
چهارشنبه 08 اردیبهشت 1395, 03:59 صبح
اروری نمیده.فقط رو جدول اعمال نمیشه.

شما از تابع mysql_error یا mysqli_error استفاده کردید؟ اگر استفاده کردید و اروری نشون نداد من دیگه سوادم قد نمیده ولی اگه استفاده نکردید استفاده کنید و نتیجه رو ببینید.
اون مورد ورودی integer دادن به cat رو هم اصلاح کنید. '2'=cat بشه cat=2
و اینکه اگر براتون مقدور هست کل کد مربوط به این فایل رو ارسال کنید