PDA

View Full Version : سوال: یکسان بودن id دو فیلد از دو جدل



hashem64
دوشنبه 21 اسفند 1391, 01:06 صبح
سلام خسته نباشید

سوالی داشتم از اساتید محترم انجمن

یه جدول دارید با نام enter و جدول دوم با نام meta_enter

فرم ارسال مطلب وفتی سابمیت میشه توی enter ریخته میشه و مقدار enter_id به صورت اتومات زده میشه

الان میخواستم فیلد meta_enter_id جدول دوم آی دیش همون آی دی enter_id باشه

دقیقا نمیدونم عمل کردش چه طوری میشه

Unique
دوشنبه 21 اسفند 1391, 01:12 صبح
سوالتون عجیبه یعنی کاربردش معلوم نیست ! میشه توضیح بدین چیکار میخواین انجام بدین ؟

alaveh
دوشنبه 21 اسفند 1391, 01:41 صبح
سلام خسته نباشید

سوالی داشتم از اساتید محترم انجمن

یه جدول دارید با نام enter و جدول دوم با نام meta_enter

فرم ارسال مطلب وفتی سابمیت میشه توی enter ریخته میشه و مقدار enter_id به صورت اتومات زده میشه

الان میخواستم فیلد meta_enter_id جدول دوم آی دیش همون آی دی enter_id باشه

دقیقا نمیدونم عمل کردش چه طوری میشه

سلام

اگر meta_enter_id هم به صورت اتومات زده بشه این امکان وجود نداره . تنها راهش اینه که این فیلد اتومات نباشه و پس از ثبت رکورد در جدول enter_id آی دی اون خونده بشه و توی جدول meta_enter_id ثبت بشه .

hashem64
دوشنبه 21 اسفند 1391, 02:04 صبح
اگر meta_enter_id هم به صورت اتومات زده بشه این امکان وجود نداره . تنها راهش اینه که این فیلد اتومات نباشه و پس از ثبت رکورد در جدول enter_id آی دی اون خونده بشه و توی جدول meta_enter_id ثبت بشه .


دقیقا درسته فیلد meta_enter_id اتومات نیست
این سوال توی تاپیک دیگه شد ولی متاسفانه کسی ج نداد

20 تا فیلد داریم توی meta_enter_id که آی دیهاشون باید با enter_id یکی باشه


حالا مقادیر این 20 تا فیلد متعدد مثلا چک باکس و متن و ....... وقتی مطلب ارسال میشه همه اینا هم باهاش ارسال میشه

عزیزان متوجه شدند

alaveh
دوشنبه 21 اسفند 1391, 20:22 عصر
دقیقا درسته فیلد meta_enter_id اتومات نیست
این سوال توی تاپیک دیگه شد ولی متاسفانه کسی ج نداد

20 تا فیلد داریم توی meta_enter_id که آی دیهاشون باید با enter_id یکی باشه


حالا مقادیر این 20 تا فیلد متعدد مثلا چک باکس و متن و ....... وقتی مطلب ارسال میشه همه اینا هم باهاش ارسال میشه

عزیزان متوجه شدند

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

این مهم نیست که شما چند تا فیلد دارید . 20 فیلد یا 200 فیلد . مهم اینه که رکوردی که ثبت میکنید بتونید همون لحظه دوباره بازیابیش کنید و فیلد Id رو بخونید . کجاشو متوجه نمیشید تا بیشتر توضیح بدم براتون :لبخندساده:

hashem64
سه شنبه 22 اسفند 1391, 00:18 صبح
سلام دوست عزیز همین که (مهم اینه که رکوردی که ثبت میکنید بتونید همون لحظه دوباره بازیابیش کنید و فیلد Id رو بخونید .) این به چه شکل باید صورت بگیره ؟

alaveh
سه شنبه 22 اسفند 1391, 00:29 صبح
خوب این بسته به خودتونه

هزار تا روش داره

1 : شما داری میگی این رکوردها 20 تا فیلد دارن . خوب از این فیلدها هر کدومش که یکتا هست ازش استفاده کن و فیلدتو بازیابی کن .
2 : یک فیلد پرچم بزار . یک فیلد یک بیتی یا بولین که رکوردی که الان اضافه میشه مقدار این فیلد True باشه و وقتی که بازیابی شد و فیلد ID رو خوندی مقدار اون رو False میکنی . یعنی همیشه فقط یک رکورد وجود داره که فیلد پرچمش مقدار True داره .

راههای دیگه هم هست . این 2 تا راهه که همین الان به ذهنم رسید .

hashem64
سه شنبه 22 اسفند 1391, 01:23 صبح
اصلا متوجه نشدم یعنی خیلی برای من که مبتدی هستم گنگ بود .

روان تر بگید بهتر هست .

alaveh
سه شنبه 22 اسفند 1391, 03:50 صبح
دیگه روونتر مگه بنویسمش برات .

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

خوب تنها مشکلت میتونه این باشه که رکوردت بعد از ثبت تو دیتابیس ممکنه گم بشه و فیلد یکتا نداشته باشی که بتونی رکوردتو پیدا کنی که اینم راه حلش اضافه کردن یک فیلد Boolean هست که زمان ثبت رکورد مقدارش رو True میدی و بعد از ثبت بعد از اینکه دوباره خوندیش و مقدار فیلد ID رو ازش خوندی مقدار این فیلد رو False میکنی . پس تنها یک رکورد هست که مقدار این فیلدش True هست اونم رکوردیه که شما میخوایدش و الان ثبتش کردید . روش خوندنش هم این کویریه .

Select * From TBL1 Where Flag=1

Dead Space
سه شنبه 22 اسفند 1391, 07:40 صبح
من درست نفهمیدم سوالتون رو ولی اگر منظورتون اینه که وقتی رکوردی درج شد بلافاصله ID اون رو بگیرید و در جدول دیگه بریزید این تابع به کارتون میاد :

PDO::lastInsertId
مثال و اطلاعات بیشتر در لینک زیر:
http://www.php.net/manual/en/pdo.lastinsertid.php

hashem64
سه شنبه 22 اسفند 1391, 18:32 عصر
بنده از این کد




$sqli = mysql_query("INSERT INTO `mt_entry` (`entry_title`,`entry_text`,`user_id`,`name_user`, `entry_blog_id`) VALUES ('$title','$text','$user_id','$name_user','1')");


$statement = $this->prepare($sqli);
$statement->bindParam(":entry_id", $employee->getUserId(), PDO::PARAM_INT);

استفاده کردم ولی هر کاریش میکنم جواب نمیده ؟

میتونید راهنمائی کنید ؟

s.hoseinpoor
سه شنبه 22 اسفند 1391, 23:14 عصر
اگه سیستمت تک کاربره س بعد اینکه در جدول enter ثبت کردی:
Insert into meta_Enter values(Select max(enter_id) from enter)

hashem64
چهارشنبه 23 اسفند 1391, 00:18 صبح
عزیز سیستم چند کاربره هست

mamali-mohammad
چهارشنبه 23 اسفند 1391, 07:13 صبح
من اینطوری میزنم جواب میده :

mysql_query("INSERT INTO `page` (title,text) VALUES ('$title','$text')"); // save kardane matalebe site
$pid=mysql_insert_id(); // gereftane id sabte shode ( auto )
mysql_query("UPDATE `page` SET `enter_id`='$pid' WHERE `enter`='$pid'"); // save kardane id morede nazare sabt shode dar field dige

hashem64
چهارشنبه 23 اسفند 1391, 13:32 عصر
الان به مشکل بزرگ تری برخورد کردم همه اطلاعات ثبت شد ولی نمیدونم چه طوری برای ویرایش توی فرم بیارمشون

14 تا رکورد ثبت شده با یه آی دی چه طوری میتونم این 14 تا رکورد را انتخاب کنم و توی فیلد های خودشون جاشون بدم

البته انتخاب از بانک را بلدم ولی این یکی خیلی گیجم کرده

این عکس را ببینید 101383

دوستان خواهشا راهنمایی کنید تشکر

mamali-mohammad
چهارشنبه 23 اسفند 1391, 14:34 عصر
این ساده ترین حالتش

if($_GET['id']) {
$sid=$_GET['id'];
$sql=mysql_query("SELECT * FROM `page` WHERE `entry_meta_entry_id`='$sid'");
$row=mysql_fetch_array($sql);
$title=$row['entry_meta_vchar_idx'];
}

برای اینکه همه رو بکشی بیرون بزار تو حلقه

hashem64
چهارشنبه 23 اسفند 1391, 15:21 عصر
عزیز بنده مبتدی هستم میشه یه خورده بیشتر راهنمائی کنید

هر کاریش کردم نشد که نشد

mamali-mohammad
چهارشنبه 23 اسفند 1391, 21:38 عصر
کد فایلتون رو بزارید ببینم چی نوشتید