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

من یه سایت نوشتم که دو زبانه است و مدیر می تونه به 2 زبان اطلاعات رو وارد کنه
به این صورت که وقتی میخواد یه پست ارسال کنه اگه فارسی رو انتخاب کنه ، توی فیلد lang در دیتابیس fa ثبت می شه و اگه انگلیسی en
خب تا اینجا مشکلی نیست
اما وقتی بازدید کننده می خواد این سایت رو ببینه وقتی انگلیسی رو انتخاب میکنه طبعا کوئری می شه where lang=en

حالا من نمی خوام بشینم و برای این همه کوئری شرط بذارم .
دنبال راهی هستم که وقتی کاربر فارسی رو انتخاب میکنه خود سیستم این شرط رو بذاره و select میکنه
ممنون می شم اگه راهی رو که به نظر تون می رسه بهم بگسن
  پاسخ
تشکر شده توسط :
#2
چرا واسش یه کلاس نمینویسی
که بگه اگر انگلیسی بود یه کوئری رو انتخاب کنه واگه فارسی بود یه کوئری دیگه
اینجوری فقط 2 تا کوئری رو فقط واسش مینویسی
با تشکر ممل آمریکایی
  پاسخ
تشکر شده توسط :
#3
منظورت رو من درست متوجه نشدم ولی وجود یه متغیر ب مقدار مورد نظر و قرار دادن اون در query فکر کنم مشکل رو حل کنه .
  پاسخ
تشکر شده توسط :
#4
با نوشتن یک کلاس فکتوری موافقم
  پاسخ
تشکر شده توسط :
#5
اگر ممکن است کمی بیشتر توضیح دهید. همچنین یک مثال کوچک هم بزنید تا دقیقا منظور سوالتان را متوجه شوم.
سالهــــا مـــــى گــــــذرد، حادثه ها مى آید
انتظـــــار فـــــــرج از نیمـــــه خــــــرداد کشم

[عکس: ShowPicture.aspx?ID=52750d12-5d92-4286-9...height=100]
  پاسخ
تشکر شده توسط :
#6
می تونی زبان فعلی رو داخل جلسه نگهداری با مقادیر انگلیسی و فارسی وحالا ایننطور کوئری بنویسی .

select $_session['lang'] as post from

حالا شرط رو هم بهش اضافه می کنیم جلسه مون هم عنوان فیلدهای انگلیسی و فارسی رو نگهمیداره که با فیلدهای موجود در جدولمون هم نام هست .
  پاسخ
تشکر شده توسط :
#7
سلام دوستا من سایتی دارم که میخوام اون رو دو زبانه کنم سه تا صفحه ایجاد کردم که یکیش صفحه اصلیه به اسم f3 که کدش اینه
کد پی‌اچ‌پی:
<a href="?lang=fa">فارسی</a>
<
a href="?lang=en">enlish</a>

<?
php
if(isset($_GET['lang']))
{
    
include 
$_GET['lang'].'.php';


}
else
{
include 
"en.php";

}
?>
و یک صفحه en برای نشون دادن مقادیر انگلیسی .میخوام مقادیر داخل جدول رو بخونم بیارم به کاربر نشون بدم
جدولم هم شامل 4 فیلد title_en , title_fa ,tozih_en ,tozih_fa هست که داخل صفحه en این کد رو نوشتم
کد پی‌اچ‌پی:
function en()
     {
      
$query="SELECT  *  FROM  `en`";
      
$result=mysql_query($query);
    
      return 
$result;
    }
    



$g=en();
$i=0;
while(
$tt=mysql_fetch_assoc($g))
    {
        
          
       
$test[$i]['title_en']= $tt['title_en'];

       
$test[$i]['tozih_en']= $tt['tozih_en'];
      
      
$i=$i+1;
    } 


الان مقادیر فیلد های انگلیسی رو ریختم داخل آرایه میخوام ببینم چه جوری میتونم به کاربر نشون بدم
ممنون میشم اگه کمکم کنید
  پاسخ
تشکر شده توسط :
#8
روشهای متنوعی برای چند زبانه ساختن سایت هست
ولی قبل از هر چیز این کدتون یه باگ خیلی خفن داره Big Grin
http://hakipedia.com/index.php/Local_File_Inclusion
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :
#9
(۱۳۹۶ خرداد ۰۵, ۰۲:۴۳ ق.ظ)Reza نوشته: روشهای متنوعی برای چند زبانه ساختن سایت هست
ولی قبل از هر چیز این کدتون یه باگ خیلی خفن داره Big Grin
http://hakipedia.com/index.php/Local_File_Inclusion





آهان یعنی قبل از این که کوئری استرینگ رو داخل متغیر بریزم باید به این صورت
اصلاحش کنم $file = str_replace('../', '', $_GET['file']);

حالا من میخوام به آرایه ای که داخل while ایجاد کردم دسترسی داشته باشم
چه جوری باید این کار رو انجام بدم که تمام سطر هایی که داخل while برگردوند رو بیرون از اون چاپ کنم؟
  پاسخ
تشکر شده توسط :
#10
نقل قول:آهان یعنی قبل از این که کوئری استرینگ رو داخل متغیر بریزم باید به این صورت
اصلاحش کنم $file = str_replace('../', '', $_GET['file']);
نه حتی اگر اونجوریشم بکنی بازم
کد:
http://example.com/index.php?file=..%2F..%2F..%2F..%2Fetc%2Fpasswd

نقل قول: چه جوری باید این کار رو انجام بدم که تمام سطر هایی که داخل while برگردوند رو بیرون از اون چاپ کنم؟
برای مشاهده کلید و مقدار در یک آرایه n عضوی میتونی از حلقه foreach استفاده کنی
http://php.net/manual/en/control-structures.foreach.php
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط :


پرش به انجمن:


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