تو رکورد های جدول میشه چند تا عکس با همذخیره کرد مثلا 10 عکس
@hesammousavi
@ali.bayat
آپلود همزمان چند عکس بله میشه
ولی خب برای هر عکس یه رکورد جدا در نظر بگیرین بهتره (برای ویرایش و...)
البته کامل توضیح ندادین میخواین چیکار کنین
این کد رو نگاه بندازین
https://makitweb.com/upload-multiple-image-files-to-the-database-using-pdo-php
نمیتونم تو چند تا رکورد بذارم چون من میخوام مث وب سایت های خبری گزارش تصویری بذارم تو سایت که مثلا 10 تصویر کنار هم میذارن ولی مربوط به یک خبره
اگه بخواد هر عکس تو یه سطر باشه خوب من خبرو چطوری ثبت کنم؟؟
یا مثلا چطوری همزمان تو تیبل news و photo جوری مطلب ثبت کنم که تو تیبل news مطلب یک بار ثبت شه و 10 تا تصویر توی تیبل photo
آها اونجوری فکر کنکم از ویرایش گر هایی مثل ckeditor و یا tinymce استفاده میکنن که متن خبر رو به صورت یه کد html ذخیره میکنه
حالا این کد داخلش متن هست، عکس هست و...
جدول news رو که دارید
شما نیاز به یه جدول ساده دارید برای این کار. (photos)
جدول photos شما میتونه ۲ تا فیلد داشته باشه
بعد در حین دریافت خبر id رو که داری کوئری میزنی و تمام عکس هایی که چنین news_id رو دارند، رو از دیتابیس میگیری
در کل به ازای هر عکس میتونید یه سطر به جدول photos اضافه کنید.
بعضی توسعه دهنده ها هم میاند و برای هر خبر، یک سطر اضافه میکنند و آدرس عکس ها رو با یه کاراکتر از هم جدا میکنند
photo1.jpg:photo2.png:photo3.bmp
و با توابعی مثل explode عکسها رو از هم جدا میکنند و میریزند توی یه آرایه
من روش اول رو ترجیح میدم
یعنی اگه یه وبلاگ داشتیم باشه که داخل پست هاش عکس و متن هست
مثلا همین قسمت مقالات راکت
باید اینجوری ذخیره کنیم؟
متن1
عکس1
متن2
عکس2
و...
یا اینکه باید از ویرایش گرهایی مثل ckeditor و یا tinymce استفاده کنیم که متن خبر رو به صورت یه کد html ذخیره میکنه و ما همونو چاپ کنیم؟
روش اصولیش چیه؟
@elyasbeshkani
این روشی که اقای بیات فرمودند مربوط به سوال اون دوستمون بود که درباره گالری برای خبر اشاره کردن، شما روشی که میفرمایید مربوط به ثبت مقاله یا خبر یا هرچیز دیگه ی هست و بهترینش هم استفاده از ckeditor و ادیتورهای دیگه هست که خودشون فایل ها رو اپلود میکنن روی هاست و اطلاعاتشون تویی دیتابیس بصورت html ذخیره میشه.
@ali.bayat
روش اولی که گفتید عالیه و خوب راحت هم میتونم تو سایت نمایش بدم
اما چطوری همزمان ثبت کنم تو دو تا تیبل
مثلا من من view 6 تا فیلد داره
عنوان نویسنده تصویر متن خبر دسته بندی که باید تو جدول نیوز ثبت بشن
یه فیلم multiimage هم تو همون فرمه که عکساش باید تتیبل photos بره
اینو چطوری ثبت کنم؟
بعد از ذخیره فیلدهای news میتونی به صفحه جدیدی ریدایرکت کنی و id خبر رو هم بفرستی
در اون صفحه id رو که داری .. کارهای مربوط به آپلود عکس رو انجام میدی.
نام فایل و id خبر رو در جدول photos ذخیره میکنی
@elyasbeshkani
همونطور که اقای موسوی هم گفتن .. پاسخ من برای اون سوال اول بود.
در مورد بلاگ بهتره که از ادیتورهایی مثل ckeditor و یا کلا از Markdown استفاده کرد.
ببخشید یه سوال دیگه هم دارم این کد رو الان من دارم
public function multiupload($files,$dir){
if(!empty($files['name'][0])){
$allowed = array("jpg","png","jpeg","gif");
foreach($files['name'] as $position=>$file_name){
$file_tmp = $files['tmp_name'][$position];
$file_size = $files['size'][$position];
$file_ext = explode(".",$file_name);
if(in_array($file_ext,$allowed)){
if($file_size <= 2097152){
$file_name_new = uniqid('',true) . '.' . $file_ext[1];
$path = "upload/" . $file_name_new;
if(move_uploaded_file($file_tmp,$path)){
echo "yes";
}
}else{
echo "متن ارور";
}
}else{
echo "متن ارور";
}
}
}
}
توی فایل هر چند تا عکسی که بخوام رو برام آپلود میکنه 5 10 15
اما نمیتونم آدرس فایل ها رو برگردونم به کنترلر که ثبتش کنم تو دیتابیس چکار باید بکنم؟
ادرس فایل ها رو بصورت ارایه داری میتونی توش MAP کنی یا با حلقه اطلاعات ارایه رو دونه به دونه داشته باشی و جایی ذخیره کنی یا همون ارایه رو ذخیره کنی و موقع نمایش با حلقه ی اطلاعات رو چاپ کنی
$files['name']
اینو تست کردم ارسال کنم به کنترلر میاد اما اسم ائلیه خودشون یعنی همون هش نشده میاد اگه از
$files['name']
استفاده کنم ممکنه اسم عکسا تکراری در بیاد و بزنه قبلیا رو پاک کنه من میخوام مثل متغییر file_name_new تک تک هش شده بیان ثبت کنم
خب گفتم به دو صورت میتونی ارایه رو دونه به دونی بخونی، اولیش با متد map
$file = array("file1","file2","file3");
function myfunction($file_url)
{
//کدهات رو اینجا بنویس
return $file_url;
}
array_map("myfunction",$file)
یا با حلقه foreach
foreach($array as $i => $item) {
//کدهات رو اینجا بنویس
// $array[$i] is same as $item
}
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟