-
April 30th, 2016, 15:02
#1
ثبت یک آرایه در یک فیلد از جدول mysql
بعد از ساختن دسته بندی مطالب نوبت به ایجاد صفحه ( ایجاد پست ) رسیدم .
همه چیز اوکیه - و وقتی کاربر برای پستش دسته انتخاب میکنه ( id دسته های مورد نظر رو میریزم داخل یک ارایه ) . شما فرض کنید یک پست در چنتا دسته باشه . مثلا یک پست هم در زمینه سلامت باشه هم در زمینه ورزش و هم در زمینه بدنسازی .
حالا موقع ثبت آرایه مورد نظر در بانک اطلاعاتی میرسه . هر کاری میکنم نمیتونم همه id های داخل ارایه رو تو mysql ثبت کنم . از foreach هم استفاده کردم فقط id اخرین دسته انتخابی ثبت میشه .
-
-
April 30th, 2016 15:02
# ADS
-
April 30th, 2016, 15:15
#2
عضو انجمن
پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql
اخرش رو متوجه نشدم foreach برا چیه
- - - Updated - - -
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
The above example will output:
{"a":1,"b":2,"c":3,"d":4,"e":5}
-
-
April 30th, 2016, 15:16
#3
پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql
کد PHP:
$category_id=$_POST['category_id'];
foreach($category_id as $cat){
}
if($a==1 && $b==1 && $c==1 && $d==1 && $e==1 && !empty($time) && !empty($date) && !empty($level)){
$record=$connect->prepare("INSERT INTO `db_post` (`title`,`text`,`description`,`keywords`,`time`,`date`,`author_id`,`category_id`) VALUES (?,?,?,?,?,?,?,?)");
$record->bindValue(1,$post['title']);
$record->bindValue(2,$post['text']);
$record->bindValue(3,$post['description']);
$record->bindValue(4,$post['keywords']);
$record->bindValue(5,$time);
$record->bindValue(6,$date);
$record->bindValue(7,$level);
$record->bindValue(8,$cat);
if($record->execute()){
$success='پست شما با موفقیت در وبسایت ثبت شده است .';
}
else{
header('location: post.php');
die;
}
}
-
-
April 30th, 2016, 15:16
#4
عضو انجمن
پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql
ارایه رو json کنین اونو تو دیتابیس ذخیره کنین ! وقتیم از دیتابیس درمیارید json_decode استفاده کنین
-
تعداد تشکر ها از miladtnt به دلیل پست مفید
-
April 30th, 2016, 15:16
#5
عضو دائم
پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql
کدی که نوشتید قرار دهید، به جای آرایه برای دسته بندی، implode کنید با کارکتر , ،حجم کمتری در دیتابیس میگیرد.
-
تعداد تشکر ها ازT.Toosi به دلیل پست مفید
-
April 30th, 2016, 15:24
#6
عضو انجمن
پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql

نوشته اصلی توسط
<?php?>
کد PHP:
$category_id=$_POST['category_id'];
foreach($category_id as $cat){
}
if($a==1 && $b==1 && $c==1 && $d==1 && $e==1 && !empty($time) && !empty($date) && !empty($level)){
$record=$connect->prepare("INSERT INTO `db_post` (`title`,`text`,`description`,`keywords`,`time`,`date`,`author_id`,`category_id`) VALUES (?,?,?,?,?,?,?,?)");
$record->bindValue(1,$post['title']);
$record->bindValue(2,$post['text']);
$record->bindValue(3,$post['description']);
$record->bindValue(4,$post['keywords']);
$record->bindValue(5,$time);
$record->bindValue(6,$date);
$record->bindValue(7,$level);
$record->bindValue(8,$cat);
if($record->execute()){
$success='پست شما با موفقیت در وبسایت ثبت شده است .';
}
else{
header('location: post.php');
die;
}
}
این روش درستی نیست همه دسته هاتون که تو ارایه هستن رو اینجور ذخیره کنین
- - - Updated - - -
دوست عزیز نمیدونم تو کلاس های هسته جلوش گرفته شده یا نه ولی این روش کدنویسیتون sql injection داره ها
ویرایش توسط miladtnt : April 30th, 2016 در ساعت 15:19
-
تعداد تشکر ها از miladtnt به دلیل پست مفید
-
April 30th, 2016, 15:40
#7
پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql
از sql injection با یک تابع هنگام ورودی جلوگیری شده . بخشی از کد رو اینجا گذاشتم .
این تمام کد صفحه ایجاد مطلب هست :
http://paste.ofcode.org/scghhzeiycWX6b3AwDD4qd
-
تعداد تشکر ها از <?php?> به دلیل پست مفید
-
April 30th, 2016, 16:44
#8
پاسخ : ثبت یک آرایه در یک فیلد از جدول mysql
حل شد از همه دوستان ممنونم
-