نمایش نتایج 1 تا 11 از 11

نام تاپیک: مشکل در استفاده همزمان از insert و select

  1. #1
    کاربر تازه وارد آواتار enteraks13
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    37

    Exclamation مشکل در استفاده همزمان از insert و select

    دو روزه که دنباله دستوری می گردم که بشه اول اطلاعات جدولی رو فراخانی کرد و با تغییر کوچکی در اطلاعات تو همان جدول در رکود های جدیدی قرار داد
    بزارید با مثال بگم دانش آموزان یک مدرسه در سال بعد در مقطه بالاتری قرار می گیرند پس باید دوباره در جدول خاصی اطلاعات مربوط به ثبت نام جدید رو قرار داد بدون اینکه مشخصات اون رو دوباره وارد کنیم مشکل اینه من نمی تونم همزمان از یک جدول select , insert کنم
    در مورد دستورات کنترلی مثل while بازم نمی تونم در داخل کد insert ازشون استفاده کنم لطفا راهنمایی کنید

  2. #2
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    هر چند در کل ساختاری که برای دیتابیست چیدی، ساختار درستی نیست.
    ولی خوب اگر اصرار داری از همین شیوه استفاده کنی: چرا از while نمیتونی استفاده کنی؟ :

    $query=mysql_query("select * from `table` where 1");
    while($row=mysql_fetch_assoc($query)){
    $field1=$row['field1']." More Chars";
    $field2=$row['field2']+1;
    $query2=mysql_query("insert into `table` set `field1`='$feild1' , `field2`='$field2'");
    }

  3. #3
    کاربر تازه وارد آواتار enteraks13
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    37
    من از این راه استفاده کردم ولی جوابی ندیدم با اینکه خطا هم نداد
    شما گفتید ساختار من درست نیست!؟
    می شه بیشتر توضیح دهید چون من مبتدی هستم وبر روی پروژم دارم کار می کنم
    راه پیشنهادی شماچیه؟

  4. #4
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    بهتره جدول دانش آموزان، از جدول پایه شون جدا باشه.
    مثلا یه همچین جدولهایی داشته باشی:
    افراد: شماره پیاپی، نام و نام خانوادگی، تاریخ تولد و ...
    پایه ها: شماره پیاپی، شماره پایه، سال تحصیلی، پیاپی فرد

    و یا اگر حتی برای هر سال تحصیلی جدول جداگانه ای داشته باشی، فکر میکنم بهتر باشه.


    در هر صورت، کدی که میگی کار نمیکنه رو اینجا بذار...

    موفق باشید.

  5. #5
    کاربر تازه وارد آواتار enteraks13
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    37
    راستش من هم همین کار رو کردم در جدولی دیگر مقطع وسال
    رشته رو نگهداری می کنم تا اگر همون دانش آموز دوارد سال بعد شد در این جد.ل فقط stdid به اضافه مشخصات جدید مثل مقطع در سال بعد قرار می گیره مشکلم اینه که stdid رو از سال قبل بخونم و سپس در سال جدید با مشخصات تغییر کرده insertesh کنم

  6. #6
    کاربر تازه وارد آواتار enteraks13
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    37
    $r=mysql_query('select stdid,reshte from source where year=\''.$_REQUEST['kyear'] .'\' and maghta=\''.$_REQUEST['select'] .'\' and reshte=\''.$_REQUEST['select2'] .'\'',$dbcon);
    while($prow=mysql_fetch_array($r))
    {
    mysql_query('insert into source set stdid=\''.$prow['stdid'].'\',year=\''.$_REQUEST['kyear'].'\',reshte=\''.$prow['reshte'].'\',maghta=\''.$magh.'\''
    ,$dbcon);
    }

  7. #7
    کاربر دائمی آواتار tabib_m
    تاریخ عضویت
    تیر 1384
    محل زندگی
    ایران - قم
    پست
    1,268
    ببین این جواب میده؟

    $r=mysql_query("select `stdid`,`reshte` from `source` where `year`='$_REQUEST[kyear]' and `maghta`='$_REQUEST[select]' and `reshte`='$_REQUEST[select2]'",$dbcon);
    while($prow=mysql_fetch_assoc($r)){
    mysql_query("insert into `source` set `stdid`='$prow[stdid]' , `year`='$_REQUEST[kyear]' , `reshte`='$prow[reshte]' , `maghta`='$magh'",$dbcon);
    }

    در ضمن، آیا $magh رو مقدار دهی کردی؟

    کدی که گذاشته بودی میتونست درست باشه، ولی خوب مقداری نامنظم و شلوغ بود. کد بالا منظم شده و صاف و صوف شده شه.

    در ضمن، مادامی که نیازی به mysql_fetch_array نداری، بهتره از mysql_fetch_assoc استفاده کنی...

    موفق باشید.

  8. #8
    کاربر تازه وارد آواتار enteraks13
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    37

    Smile

    نقل قول نوشته شده توسط tabib_m مشاهده تاپیک
    ببین این جواب میده؟

    $r=mysql_query("select `stdid`,`reshte` from `source` where `year`='$_REQUEST[kyear]' and `maghta`='$_REQUEST[select]' and `reshte`='$_REQUEST[select2]'",$dbcon);
    while($prow=mysql_fetch_assoc($r)){
    mysql_query("insert into `source` set `stdid`='$prow[stdid]' , `year`='$_REQUEST[kyear]' , `reshte`='$prow[reshte]' , `maghta`='$magh'",$dbcon);
    }

    در ضمن، آیا $magh رو مقدار دهی کردی؟

    کدی که گذاشته بودی میتونست درست باشه، ولی خوب مقداری نامنظم و شلوغ بود. کد بالا منظم شده و صاف و صوف شده شه.

    در ضمن، مادامی که نیازی به mysql_fetch_array نداری، بهتره از mysql_fetch_assoc استفاده کنی...

    موفق باشید.



    خیلی خیلی خیلی ممنونم مشکلم حل شد

    در مود این دو تابع که گفتی راستش اصلا نمی دونم فرقشون چیه وکجا استفاده می شه لطف می کنی توضیح بیشتری بدین؟
    به خاطر منبع مفیدی که معرفی کردی هم ممنونم

  9. #9
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    نیازی به این کارای پیچیده و زمان‌بر نیست. از INSERT SELECT استفاده کن.

    پ.ن: ممکنه کوئری بالا ۱۰۰٪ کارت رو راه نندازه، مگر دقیقا بگی می‌خوای چیکار کنی.
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

  10. #10
    کاربر تازه وارد آواتار enteraks13
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    تهران
    پست
    37
    [
    <form action="" method="get">
    <input name="flag" type="checkbox" value="far" />
    <input name="flag" type="checkbox" value="eng" />
    </form>




    request این دستور تو browser به صورت :
    flag=far& flag=eng میشه من می خوام از هر دو استفاده کنم ولی فقط یکیش تو request قرار می گیره لطفا راهنمایی کنید


    در مورد insert select این دستور رو قبلا دیده بودم ولی نتونستم ازش استفاده کنم لطفا ت کاربردش رو توضیح دهید

  11. #11
    . آواتار oxygenws
    تاریخ عضویت
    دی 1382
    محل زندگی
    تهران/مشهد
    پست
    6,333
    سوالات متفاوت رو در تاپیک‌های مجزا بپرس. (پست بالا رو ویرایش کن و بخش‌های نامربوط رو حذف کن)

    تو لینکی که دادم، روش کار رو گفته، کوئری‌ای که نوشتی رو بنویس و بگو دقیقا می‌خوای چیکار کنی.
    ایمیل من
    سایت من

    عضویت در جامعه‌ی اهدای عضو

    Direct PGP key: http://tinyurl.com/66q5cy
    PGP key server: keyserver.ubuntu.com
    PGP name to search: omidmottaghi

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •