• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
کوئری داینامیک
#1
سلام
من یک فرم دارم با چند فیلد (فیلدها به صورت داینامیک اضافه می شن)
من چه طور میتونم کدی بنویسم که با اضافه شدن هر فیلد یک رکورد تازه در db اضافه کنه
  پاسخ
تشکر شده توسط :
#2
فیلد هاتون رو از نوع آرایه در نظر بگیرید.
کد:
<input type="text" name="dynamic[]" />
<input type="text" name="dynamic[]" />
<input type="text" name="dynamic[]" />
از اون متدی که استفاده می کنی GET/POST یه print_r بگیر می بینی چی شده
  پاسخ
تشکر شده توسط : scooter
#3
موقع ارسال به دیتابیس نیاز به implode نیست؟
  پاسخ
تشکر شده توسط :
#4
اگر print_r بگیری می بینی که یک آرایه با نام dynamic در متغیر POST وجود داره.
کد پی‌اچ‌پی:
array(
    [
dynamic] = array(
        [
0] = Value // value of first field
        
[1] = Value // value of second field
        
...
        [
n] = value // value of N field
    
)

    [static] = 
Some Value

حالا من نمی دونم نیاز داری از implod استفاده کن
  پاسخ
تشکر شده توسط : scooter
#5
تو می گی به ازای هر فیلد یک رکورد اضافه بشه برای این حالت باید فیلد هایی که بصورت یک آرایه هستند را دریافت کنی و توسط یک حلقه query آنها رو بسازی و یکجا بفرستی به mysql
البته من ارسال یکجای چند query رو با php تست کردم جواب نمی ده ولی وقتی با phpmyadmin همان query را وارد می کنم جواب می ده!!!
  پاسخ
تشکر شده توسط :
#6
mysql_query فقط ‌یک‌ کوئری رو ارسال می کنه. داخل phpmyadmin هر ‌کوئری‌ رو‌ شناسایی می کنه و هر کدوم رو تکی اجرا می کنه
البته توی نسخه mysqli امکان ارسال چند کوئری وجود داره
http://php.net/manual/en/mysqli.multi-query.php
  پاسخ
تشکر شده توسط :
#7
سلام و ممنونم
یعنی این چیزی که محمد گفت عملی نیست؟
  پاسخ
تشکر شده توسط :
#8
عملیه
ببین تو یه متغیر داری به صورت آرایه هست حالا این رو چطور می خوای وارد دیتابیس کنی؟ این کار رو می تونی انجام بدی؟
  پاسخ
تشکر شده توسط :
#9
اجازه بدین توضیح بدم
کاربر یه محصول انتخاب میکنه اینجا 2 تا فرم add میشه.(منظورم از دو تا فرم ، <form > نیست منظور فرمیه که اطلاعات رو توش می نویسن مث فرم استخدام که باید پر کنین بعدشم میگن تماس میگیریم)
فرم شماره یک : مشخصات گیرنده.
فرم شماره دو : مشخصات فرستنده (کاربر سایت)
تا اینجا همه چیز خوبه
اما اگه کاربر 2 تا محصول رو انتخاب کرد. و خواست برای 2 نفر بفرسته
حالا اینجا ما 2 تا فرم گیرنده داریم و یک فرم فرستنده
.........
اگه ده تا محصول انتخاب کرد و خواست برای ده نفر بفرسته چی؟
ما 10 تا فرم گیرنده داریم و یک فرم فرستنده

به نظر شما در این حالت باید چی کار کرد؟
  پاسخ
تشکر شده توسط :
#10
فرض میکنیم کد زیر قسمت فرم ها باشه، یه فرم که 5 تا textbox داره
کد پی‌اچ‌پی:
<form  action="action.php" method="POST">
<?
php for($i=0;$i<5;$i++)
    echo 
'<input type="text" name="name[]">' ;
?>
<input type="submit" name="submit" value="submit">
</form> 

اینم قسمت کوئری:
کد پی‌اچ‌پی:
foreach ($_POST['name'] as $k=>$v)
    {
        
$field $v;
        
$query ="INSERT INTO test (name) VALUES ('$field') ";
        
mysql_query($query);
    } 
در حلقه به ازای هر فیلدی که دارید یه بار کوئری ساخته میشه و اجرا میشه
  پاسخ
تشکر شده توسط : scooter nasserghiasi


پرش به انجمن:


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