سلام فرض کنید من یک همچین فرمی دارم :
<form action="" method="post">
<input type="text" name="name">
<input type="text" name="age">
</form>
فک کنید در دیتابیسم اینطوری ساختاری دارم :
User Table :
id - integer
name - string
age - integer
حالا یک دکمه دارم که با زدنش اون دو اینپوت توی فرم به صفحه اضافه می کنه
یعنی اگه اول صفحه لود میشه دو اینپوت دارم بعد زدنش میشه 4 اینپوت یعنی اینطوری میشه :
<form action="" method="post">
<input type="text" name="name">
<input type="text" name="age">
<!-- بعد زدن دکمه دو خط بعدی اضافه میشه به صفحه -->
<input type="text" name="name">
<input type="text" name="age">
</form>
و الی آخر
حالا میخوام وقتی دکمه ارسال فرم زده شد چطوری مثلا اطلاعات اینپوت ها با نام یکسان که معلوم نیست چند بار باشه رو بگیرم
بعد نام اولی با سن اولی رو در یک ردیف دیتابیس ثبت کنم
نام دومی رو با سن دومی توی ردیف بعدی
نام سومی با سن سومی و ...
این کار چطوری باید انجام بشه همین گرفتم تمام نام ها و سن ها از اینپوت ها وقتی که اینپوت های هم نام وجود داره
با تشکر
@mojtaba.kh
سلام و وقت بخیر
اگر منظورتون منم که محسن بستان نیستم 😅
بهتره با حلقه for بزنید :
for($i=0;$i< count($names);$i++)
{
$names[$i];
$ages[$i];
}
و کوئری رو میسازید
موفق و سلامت باشید
یا حق
<input type="text" name="name[]">
اینجوری نام ها توی آرایه ذخیره میشن. توجه کنید که سمت سرور هم آرایه دریافت میکنید.
@mojtaba.kh
سلام و وقت بخیر
اسم های input هاتون رو به این صورت تغییر بدید :
Name -->Name[] , Age-->Age[]
یعنی تو فرم اینجوری باشه :
<input type="text" name="name[]">
<input type="text" name="age[]">
اینطوری میتونید توی PHP اینطوری فرم رو هندل کنید :
$_POST['name'][0]=مقدار اول
$_POST['name'][1]=مقدار دوم
$_POST['name'][2]=مقدار سوم
$_POST['age'][0]=مقدار اول
$_POST['age'][1]=مقدار دوم
$_POST['age'][2]=مقدار سوم
و الی آخر ....
اینطوری میتونید با یه حلقه for each ,هر ریکورد رو جداگانه ثبت کنید
موفق و سلامت باشید
یا حق
@forughi.vahid
مرسی جناب فروغی عزیز 🌷
@mohsenbostan
اقا محسن ممنون از کمکتون
الان برام یک سوال پیش اومد من سمت سرور بیام با یه حلقه مثلا اول نام ها رو بگیرم از ارایه ثبت کنم توی دیتابیس بعد بیام باز با یه حلقه سن ها رو بگیرم باز هر رکورد رو اپدیت کنم سنش رو ثبت کنم؟؟؟؟
نمیشه یه کاری کرد یک دفعه درخواست بزنیم به دیتابیس و یک دفعه ثبت بشه؟
چیزی که به ذهنم رسید این بود که مثلا بیام وقتی اسم رو میگیرم توی حلقه مثلا یه متغیر بزارم یه شماره رو ذخیره کنه
$i = 0;
وقتی مثلا دفعه اول حلقه اجرا شد اسم اول که میگیره
بعد بیام اینطوری مثلا بعد بیام بگم
$age[$i]
اینطوری همزمان سن اون فیلد رو هم میگیرم که متناسب با اسمه
بعد ثبت می کنه اخرم یکی به متغیر i اضافه کنم درسته؟
یا راه دیگه ای داره؟
@mojtaba.kh
سلام و وقت بخیر
همین چیزی که گفتید خوبه ، چرا دوباره کاری کنیم؟
وقتی ایندکس هر سن و اسم یکسان هست برای هر رکورد (ایندکس 0 برای نام و سن اول و ....) دیگه هر دو رو با یک حلقه وارد میکنیم .
کوئری نوشتنش دیگه با خودتون با گوشی نمیتونم بنویسم 😅🙏
موفق و سلامت باشید
یا حق
$i = 0;
foreach ($names as $name) {
// گرفتن مثلا اولین اسم و سن بعد میتونیم ثبتش کنیم
$age[$i];
$i++;
}
همچین چیزی اوکیه؟ 😀
@mojtaba.kh
سلام و وقت بخیر
اگر منظورتون منم که محسن بستان نیستم 😅
بهتره با حلقه for بزنید :
for($i=0;$i< count($names);$i++)
{
$names[$i];
$ages[$i];
}
و کوئری رو میسازید
موفق و سلامت باشید
یا حق
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟