PDA

View Full Version : سایت چندزبانه .:. کار با توابع ایجاد فیلد جدید



olampiad
پنج شنبه 21 اسفند 1393, 10:32 صبح
سلام و خسته نباشید به دوستان عزیز
من دارم واسه خودم یه cms مینویسم که میخوام اون رو چند زبانه کنم.
حالا
فیلد های جدول من در حالت عادی به این شکل هستش.
fa_name
fa_family
fa_phone
fa_address
و....
من میخوام وقتی کاربر یک زبان جدید به سایت اضافه کرد بره و از هر فیلد یکی دیکه با پسوند همون زبان بسازه.
به مثال من توجه کنید
الآن اینا فیلد های من هستش
fa_name
fa_family
حالا کاربر میاد و در سایت یک زبان به اسم زبان انگلیسی میسازه.
من میخوام بره و فیلد های موجود در جداول من رو بگرده و ببینه اگر این زبان قبلا وجود نداشته باشد.فیلد های این زبان رو هم به فیلد های دیگه اضافه کنه.
مثال
fa_name
fa_family
en_name
en_family
آیا این کار من اصولی هستش ؟
اگه اصولی هستش:
من توابع ایجاد فیلد رو نمیشناسم میشه معرفی کنید.
تو گوگلم خیلی جستجو کردم ولی چیزی دستمو نگرفت.
میشه توابع جستجو فیلد هارو هم بگید.
مرسی

امید وارم منظورمو متوجه شده باشین.

olampiad
پنج شنبه 21 اسفند 1393, 14:12 عصر
من میخوام درون جدولم فیلد درست کنم باید از چ دستوری استفاده کنم.
یا اگه بخوام به نام فیلد های داخل جدولم دسترسی داشته باشم از چ دستوری باید استفاده کنم.

H:Shojaei
پنج شنبه 21 اسفند 1393, 14:45 عصر
در رابطه با alter ها در sql جستجو کنید
اگه اشتباه نکنم:
alter table tbl_name add field1

olampiad
شنبه 23 اسفند 1393, 22:28 عصر
سلام و خسته نباشید. به این آدرس برید
http://www.w3schools.com/sql/sql_alter.asp
به این کد من هم ی نگا بندازید.

<?php mysql_connect('localhost','root',''); mysql_select_db('hamid'); $q=mysql_query("ALTER TABLE `hamid` ADD `hamiddd` datatype"); ?>
من این کد رو اجرا میکنم ولی فیلدی به جدول من اضافه نمشه. مشکل از کجاست؟
به نظرتون من برای درست کردن فیلد کار درستی انجام دادم ؟
مرسی

olampiad
شنبه 23 اسفند 1393, 22:30 عصر
به نظرتون من با کد نویسی فیلد بسازم یا به صورت دستی؟
به نظرتون کدوم راحت تره.
من میخوام تو چند تا جدول به اضای هرفیلد یه فیلد دیگه با پسوند بسازم.
مرسی

olampiad
یک شنبه 24 اسفند 1393, 15:06 عصر
کسی تا به حال با آلترها در mysql کار نکرده؟

vahidqara
یک شنبه 24 اسفند 1393, 15:14 عصر
درود این لینک و ببین
http://www.techonthenet.com/mysql/tables/alter_table.php

در ضمن شما باید مقدار و نوع فیلد رو مشخص کنید دوست خوب


ALTER TABLE contacts
ADD last_name varchar(40) NOT NULL

olampiad
سه شنبه 26 اسفند 1393, 11:21 صبح
تشکر فراوان بابت پاسخ ها
تو صفحه ای که دوست عزیز معرفی کردن طریقه ایجاد و حذف فیلد هارو معرفی کرده بودن.
من چ طوری میتونم فیلد های یک جدول رو نمایش بدم؟
منظورم اینه که فیلد های جدول رو نشون بده.
بازم از دوستان عذر خواهی میکنم من انگلیسیم خوب نیست تا بین مطالب انگلیسی جستجو کنم.
مرسی

olampiad
سه شنبه 26 اسفند 1393, 12:02 عصر
http://s6.picofile.com/file/8177572500/aaaaaaaa.PNG
به این تصویر یه نگا بندازید.
من میخوام به id و name و family و last_name دسترسی داشته باشم.
یعنی میخوام نام اونارو نمایش بدم و به کاربر نشون بدم.
مرسی

Unique
سه شنبه 26 اسفند 1393, 12:16 عصر
دوست عزیز ، به نظر من روش شما خیلی اشتباه میاد ، شما اصلا لازم نیست برای هر زبان توی جداولتون فیلد به تعداد زبان یا حتی جدول به تعداد زبان درست کنید.
اگه واقعا مهمه که بدونین چه مطلبی مربوط به چه زبانی هست کافیه یک فیلد بگذارین که مقدار en یا fa بگیره و مشخص کنه هر ردیف مربوط به چه زبانی میشه نه اینکه برای هر زبان یک سری فیلد جدید یا کلا یک جدول ایجاد کنید.
شرمنده دقیقا پاسخ شم ارا ندادم اما میخواستم راهنمایی کنم که کلا یک راه اشتباهی را نرین.

vahidqara
سه شنبه 26 اسفند 1393, 13:12 عصر
درود.. نشون دادن اطلاعات دیتابیس سادست فقط شما باید مطالعه حداقل رو داشته باشید دوست خوبم
توی کدهای php میتونید از دستور select استفاده کنی

olampiad
سه شنبه 26 اسفند 1393, 13:27 عصر
تشکر فراوان دارم از شما دوست عزيز بايت راهنمايي تون
خيلي خوشحال ميشم که کمکم کنيد.
روشي که شما ميگيد کمي سخت نيست.
فکر کنيد من يک رديف فارسي داشته باشم بعد يه رديف انگليسي داشته باشم و يه رديف عربي داشته باشم حالا چطوري اينا رو به هم ربط بدم.
به نظرتون بهتر نيست که همه ي اينا رو تو يه رديف به کار ببريم؟
اگه تو يه رديف به کار ببريم به نظرتون رديف مورد نظر سنگين ميشه؟

Unique
سه شنبه 26 اسفند 1393, 18:04 عصر
فکر کنيد من يک رديف فارسي داشته باشم بعد يه رديف انگليسي داشته باشم و يه رديف عربي داشته باشم حالا چطوري اينا رو به هم ربط بدم.
یعنی چی ربط بدین ؟
مثلا برای نمایش ردیف های مربوط به اخبار در بخش فارسی کافیه از توی url یا توی session (که البته url برای seo بهتره) زباین که کاربر تقاضا کرده را بردارید و بعدش یک select بزنین و اخبار را نشون بدین. مثلا

http://www.mysite.com/index.php?lang=fa&page=news را اگه به عنوان url بگیریم میتونیم از طریق lang توی database کوئری زیر را بزنیم :

select * from news where n_lang = 'fa'

البته به جای fa از متغیر lang$ که مقدار query string را توش گذاشتیم استفاده میکنیم. فیلد های تاریخ و عنوان و متن خبر هم که برای همه زبان ها یکی خواهد بود ! تاریخ را هم به میلادی یا timestamp ذخیره کنید که هر بلایی بخواین بتونین سرش بیارین.

این کجاش سخته ؟
حتی توی کنترل پنل که مدیر باهاش کار میکنه هم میتونید خبر ها را به تفکیک زبان نمایش بدین.
روش اصولیش اینطوریه نه اینکه بیایم برای هر زبان یک جدول درست کنیم با توی یک جدول کلی فیلد بگذاریم.