نمایش نتایج 1 تا 2 از 2

نام تاپیک: درج نشدن اطلاعات در دیتابیس به وسیله ی input

  1. #1

    درج نشدن اطلاعات در دیتابیس به وسیله ی input

    سلام.
    من یک صفحه دارای دو input دارم که یکی برای وارد کردن متن توسط ادمین سایت هست و یکی دیگه برای قرار دادن لینک فایل ها هست که توسط فایل منجر CKfinder فایل انتخاب و لینک فایل در input درج میشه.
    اطلاعات این 2 input به هم وابسته هستن. مثلا یکی از input ها نام آهنگ هست و input بعدی url آپلود شده آهنگ هست.

    [PHP]
    if (!isset($_GET['gallery']) && !isset($_GET['etr']) && isset($_GET['music'])){
    ?>
    <form action="server.php?server=music&id=<? echo $_GET['id']; ?>" method="post">

    <div class="n-add-gallery">
    <a id="n-add" href="#">اضافه کردن مداحی جدید<i class="fa fa-plus-square-o" aria-hidden="true"></i></a>
    </div><!--add-->

    <div class="main">
    <span id="n-music">

    <div class="n-img1">
    <label>نام </label>
    <input type="text" id="name1" name="name[]"/>

    <label>انتخاب فایل</label>
    <input type="text" name="url[]" id="url1" READONLY/>
    <span class="n-select" onclick="openPopup(1)">انتخاب فایل</span>
    <span class="n-del"><i onclick="dele(1)" class="fa fa-trash fa-2x" aria-hidden="true"></i></span>

    </div><!--n-img-->
    </span><!--add-gallery-->

    <div id="n-insert"><button>ذخیره </button></div>

    </div><!--main-->
    </form>
    <?
    }
    ?>




    به صورت پیشفرض 2 عدد input وجود داره و ادمین با زدن دکمه add میتونه تعداد input زیاد کنه.
    کد jquery اینه ((متاسفانه هر کاری کردم با تگ js نشون نمیداد دیگه jquery کردم . البته مشکل از این فایل نیست))



    [JQUERY]



    var i=2;
    $('#n-add').click(function () {
    var input=$('#url'+(i-1)+' ').val();
    if (input!="") {
    $('#n-music').append('<div class="n-img'+i+'">\n' +
    ' <label>نام مداحی</label>\n' +
    ' <input type="text" id="name'+i+'" name="name[]""/>\n' +
    ' <label>انتخاب فایل</label>\n' +
    ' <input type="text" name="url[]" id="url'+i+'" READONLY/>\n' +
    ' <span class="n-select" onclick="openPopup('+i+')">انتخاب فایل</span>\n' +
    ' <span class="n-del"><i onclick="dele('+i+')" class="fa fa-trash fa-2x" aria-hidden="true"></i></span>\n' +
    ' </div>');
    i++;
    }
    })




    [/JQUERY]

    یک جدول هم در دیتابیس وجود داره که 4 تا فیلد داره.
    `music_id`, `music`, `name`, `newcoll_id`
    music_id کلید اصلی هست و newcoll_id کلید خارجی هست.
    input اول یک آرایه از نام میشه و input دوم آرایه ای از لینک هست.
    زمانی که ادمین دکمه ذخیره بزنه باید جفت آرایه ها به همراه عدد کلید خارجی در دیتابیس ذخیره شود.

    oop.php کلاسی هست برای connect شدن به دیتابیس



    <?php
    class db {

    public $connect;
    private $username = "root";
    private $password = "";
    private $dsn="mysql:host=localhost;dbname=etrharam_db;char set=utf8";

    public function __construct(){
    $this->connect= new PDO($this->dsn,$this->username,$this->password);
    return $this->connect;
    }/*connection*/

    public function Idu($query,$data){
    $pre=$this->connect->prepare($query);
    foreach($data as $index=>$val){
    $pre->bindValue($index+1,$val);
    }
    $pre->execute();
    }/*idu*/

    }

    ?>




    کد php برای ذخیره اطلاعات در جدول دیتابیس
    server.php



    <?php
    ob_start();
    session_start();
    include ("oop.php");
    $oop=new db();

    if (isset($_GET['server'])){
    $server=$_GET['server'];

    if ($server=='music'){
    $id_music=$_GET['id'];
    $music=$_POST['url'];
    $names=$_POST['name'];
    foreach (array_combine($music,$names) as $url => $name){
    $query="INSERT INTO `music_tbl`(`music`, `name`, `newcoll_id`) VALUES (?,?,?)";
    $data=array($url,$name,$id_music);
    $res=$oop->Idu($query,$data);
    print_r($res);
    }//foreach
    header('location:dashboard.php');
    }//if ($server=='music'){
    }




    مشکل من در فایل server.php هست.
    اگر ادمین سایت 2 تا input اول که نام و لینک هست پر کنه یک سطر از جدول دیتابیس پر میشه.
    و اگر add بزنه و باز هم اطلاعات پر کنه این کد جواب میده.
    اما اگر تعداد از این بیشتر بشه فقط 4 تا input آخر در دیتابیس ذخیره میشه ( که تو دیتابیس میشه 2 تا سطر ).
    آرایه names برای نام هست و آرایه music برای url هست.
    شرط حلقه foreach در فایل server.php به این تغییر میدم
    foreach ($music as $url) تمامی url ها در جدول ذخیره میشه اما اطلاعات آرایه names ذخیره نمیشه
    کسی میدونه مشکل من چیه؟
    خیلی ممنونم که وقت گذاشتین و خوندین

  2. #2
    کاربر دائمی آواتار binyaft
    تاریخ عضویت
    خرداد 1388
    محل زندگی
    سیم مسی
    پست
    1,761

    نقل قول: درج نشدن اطلاعات در دیتابیس به وسیله ی input

    کد ظاهرا درسته اما شما چک کنید ببینید 1.تمام مقادیر با حلقه foreach خونده میشن؟ 2. با mysql_error که خطائی هست یا نه؟

تاپیک های مشابه

  1. پاسخ: 1
    آخرین پست: یک شنبه 03 خرداد 1394, 15:28 عصر
  2. سوال: درج نشدن اطلاعات در دیتابیس SQL Server
    نوشته شده توسط Mehdi Naderi در بخش C#‎‎
    پاسخ: 5
    آخرین پست: شنبه 26 اسفند 1391, 10:29 صبح
  3. سوال: درج نشدن اطلاعات در دیتابیس در صورت شکست در ارسال ایمیل
    نوشته شده توسط bftarane در بخش ASP.NET Web Forms
    پاسخ: 4
    آخرین پست: چهارشنبه 11 بهمن 1391, 15:43 عصر
  4. سوال: درج نشدن اطلاعات در دیتابیس
    نوشته شده توسط css-man در بخش PHP
    پاسخ: 23
    آخرین پست: شنبه 16 اردیبهشت 1391, 18:23 عصر
  5. ذخیره اطلاعات در db به وسیله htmlarea
    نوشته شده توسط karimi84 در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 07 آبان 1384, 12:17 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •