sos

چگونه به این ستون از دیتابیس دسترسی پیدا کنم

8 پست در این موضوع قرار دارد

ارسال شده در (ویرایش شده)

سلام

یه دیتابیس دارم که یه ستونش محتواش مثل اینه (1 2 3 , 4 5 6 , 7 8 9) و من نمیتونم اعداد داخلشون رو به صورت تک تک فرابخونمش و بعد آپدیتش کنم

مثال : نام دیتابیس mydb

تیبل : mytable

توی این تیبل رکورد های زیادی داریم که با ای دی میخونیمش مثلا از رکوردی با id =20

هر آی دی هم ستون های زیادی داره و اینجا ستون مثلا mycol رو میخوایم

اما مشکل اصلیم این جاست داده های ستون "mycol" مثلا به صورت زیر هست :

1 2 3 , 4 5 6 , 7 8 9

یعنی اعداد فوق به صورت یکجا ( با فاصله و کاما) توی فقط ستون mycol از رکوردی با آی دی 20 که در تیبل mytable و در دیتابیس mydb قرار گرفتند.

به طور خلاصه : من چطور میتونم مثلا عدد های 5 یا 4 رو فرابخونم که بعد آپدیتشون کنم به یه عدد دیگه ای مثلا 5 رو بگیرم و به 0 آپدیت کنم

یعنی خروجی بشه این :

1 2 3 , 4 0 6 , 7 8 9

60525318616046058944.png

ویرایش شده در توسط sos
0

به اشتراک گذاری این پست


لینک به پست

خب شما اول مقدار ستون mycol رو میگیرید

select mycol from mydb where id=20

بعد مقادیری رو که نیاز دارید تغییر میدی مثلا

$mycol = str_replace('5','3',$mycol);

و در نهایت اون سطر رو بروز میکنید

update mydb set mycol='$mycol' where id=20

2

به اشتراک گذاری این پست


لینک به پست

خب شما اول مقدار ستون mycol رو میگیرید

select mycol from mydb where id=20

بعد مقادیری رو که نیاز دارید تغییر میدی مثلا

$mycol = str_replace('5','3',$mycol);

و در نهایت اون سطر رو بروز میکنید

update mydb set mycol='$mycol' where id=20

واقعا ممنونم اما یه سوال اگر مثلا چندتا 5 توی این ستون داشته باشیم اون وقت همه رو تغییر میده ؟ اگر این طوری باشه مشکل سازه و به نظرم اگر یه شرط دیگه اضاف بشه که معین کنه کدوم جایگاه تغییر کنه ممنون میشم . مثلا این باشه :


1 0 5,2 5 25, 8 5 5

عددا 3 تا 3 تا با کاما جدا شدن و هر سه عدد هم مستقل هستند .

0

به اشتراک گذاری این پست


لینک به پست

برای این کار اگه مکان اون عددی که باید عوض بشه رو میدونید ،میتونین با استفاده از تابع substr_replace این کارو انجام بدین

مقدار پارامتر length میگه چه تعداد کاراکتر رو جابجا کنه که شما میتونین 1 قرار بدید


substr_replace([i]string,replacement,start,length[/i])
http://www.w3schools.com/php/func_string_substr_replace.asp

2

به اشتراک گذاری این پست


لینک به پست

برای این کار اگه مکان اون عددی که باید عوض بشه رو میدونید ،میتونین با استفاده از تابع substr_replace این کارو انجام بدین

مقدار پارامتر length میگه چه تعداد کاراکتر رو جابجا کنه که شما میتونین 1 قرار بدید


substr_replace([i]string,replacement,start,length[/i])
http://www.w3schools.com/php/func_string_substr_replace.asp

آیا راه دیگه ای نیست که بشه جایگاه هر یک از این اعداد رو تعیین کنیم چون شمارش کاراکتر و جایگزینی وقتی اعداد دورقمی میشن دردسر سازه.

آیا تابعی نیست که بتونه مثل ماتریس درآیه ها رو فرابخونه چون فاصله و کاما مشخصه .

اصلا یه سوال دیگه به این نوع ورودی چی میگن یعنی این ورودی های یک ماتریس 3در3 هستند یا اصلا چی هستند آخه من نفهمیدم چی هستند 3 تا عدد که با فاصله از هم جدا و هر سه تایی با کاما جدا میشن .


1 0 5,2 5 25, 8 5 5

0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

اصلا یه راه حل دیگه به ذهنم رسید ببنید آیا با منطق php جور درمیاد و میشه نوشتش یا نه ؟

ما بیام این داده های رو به ماتریس تبدیل کنیم اون وقت دیگه راحت میشه تک تک فراخوندشون .

من به توابع php آشنایی ندارم شاید الگوریتمم نشدنی باشه اما گفتم بگم نظر دوستان رو هم بدونم .

یه تابع بیاد کل "

1 0 5,2 5 25, 8 5 5

" رو بخونه و بعد یه حلقه ی تکرار به اندازه ی تعداد کاراکتر های این عبارت تعیین کنیم وتوش یه شرط و یک ماتریس 3*3 بزاریم که از کاراکتر اول شروع کنه به خوندن اگر کاراکتر اول عدد بود بزاره توی درایه ی اول ماتریس بعد کاراکتر دوم روبخونه اگر باز عدد بود عدد قبلی رو در 10 ضرب کنه و با این عدد کاراکتر دوم جمع کنه و توی درایه ی اول ماتریس قرار بده اما اگر عدد نبود و فاصله بود بره کاراکتر سوم رو چک کنه و عددش رو برداره بیاره بزاره توی درآیه ی دوم وقتی به کاما رسید بره سطر بعدی .

خداییش خودمم موندم چیکار کنم تا بتونم اعداد این ستون رو تک تک صدا کنم .

ویرایش شده در توسط sos
0

به اشتراک گذاری این پست


لینک به پست

ارسال شده در (ویرایش شده)

با کد زیر من تونستم کاما ها رو جدا کنم اما هنوز نتونستم بقیش رو بنویسم

محتوای ستون از نوع string هست


<?php
$ingredientsStr = "1 0 5,2 5 25, 8 5 5";
$ingredientsArr = explode(",", $ingredientsStr);
foreach ($ingredientsArr as $i) {
print $i . "<br>";
}
?>

خروجی :


1 0 5
2 5 25
8 5 5

اما بقیش رو هنوز نمیدونم که چطور خروجی فوق رو تبدیل به یک ماتریس 3*3 کنم

ویرایش شده در توسط sos
0

به اشتراک گذاری این پست


لینک به پست

با کد زیر تبدیل میشه به ماتریس

$ingredientsStr = "1 0 5,2 5 25, 8 5 5";
$ingredientsArr = explode(",", $ingredientsStr);
$ret = array();
foreach ($ingredientsArr as $i) {
$ret[] = explode(' ',$i);
}

var_dump($ret);

3

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری

  • مطالب مشابه

    • توسط dastjerdisf
      با سلام
      در بین اساتید کسی می تونه به من کمک کنه بگه چرا وقتی آدرس سایتم رو می نویسم اتومات این متن رو به اون اضافه می کنه/?i=1
      از مدیریت هاست پرسیدم میگند از کش مرورگر هستش اما چرا سایت های دیگه این جوری نیستند
      آدرس سایتم:http://hushmandyar.ir
    • توسط saeid1872
      سلام دوستان
      تو کمتر از یک ماه سایتم 61 ارور 500 ثبت کرده که در حال زیاد شدن هستش نمیدونم چرا این ارورهارو ثبت میکنه
      لطفا دلیلش رو بگید و اینکه چطور باید رفع کنم
      من خیلی اصلا حرفه ای نیستم فقط خواهشا جوری راهنمایی کنید که بتونم رفعش کنم.

    • توسط devil1367
      با سلام
      من یک فروشگاه دارم چون قالب قبلیم نیازهامو نمیتونست برطرف کنه یه قالب جدید از یکی از سایتها خریداری کردم
      سوالم اینه با نصب بسته اسان نصب اطلاعاتی یا محصولات قبلی که داشتم حذف میشن ؟
      چطوری قالب رو شبیه دمو دربیارم و صفحات و برگه ها import کنم.
       
      با تشکر
    • توسط armakcell
      با سلام بنده در سایتم میخواستم یک ابزارک قرار بدم مانند ابزارک این سایت
      http://powerturk.ir

      اگر داخل این سایت برید در یک قسمت نوشته است آرشیو فول البوم
      بنده این ابزارک را چگونه به دست بیارم؟
      بنده یک تصویر ضمیمه میکنم در صورتی که در سایت وارد نشد

    • توسط amir_hossein
      سلام دوستان من قصد دارم چندتا اسلاید کناره هم به صورت خطی (مثلا 4 تا اسلاید) اواسط صفحه اصلی یا انتهای صفحه قرار بدم.افزونه ای میتونید بهم معرفی کنید برای اینکار؟