صفحه 1 از 2 12 آخرینآخرین
نمایش نتایج: از شماره 1 تا 10 , از مجموع 15

موضوع: جلوگیری از ثبت داده تکراری در دیتابیس

  1. #1
    عضو جدید
    تاریخ عضویت
    Jul 2019
    نوشته ها
    33
    تشکر تشکر کرده 
    13
    تشکر تشکر شده 
    8
    تشکر شده در
    8 پست

    پیش فرض جلوگیری از ثبت داده تکراری در دیتابیس

    سلام
    وقت بخیر
    ببخشید کسی میتونه تو کد زیر بهم کمک کنه؟
    من کد زیر رو درست کردم برای اینکه لینک های یک صفحه رو دربیارم و توی دیتابیس ذخیره کنم ولی هرکاری میکنم باز لینک های تکراری ذخره میشن
    نمیدونماشتباه رفتم راه رو یا چی باعث شده که تکراری ها ثبت بشن کد اصلی من اینه اینو میخوام گاری کنم لینک تکرای ثبت نکنه توی دیتابیس
    لطفا کمکم کنید

    کد من:


    <?php
    $urls = file_get_contents('http://home.ucom.ir');

    $dom = new DOMDocument();
    @$dom->loadHTML($urls);
    $xpath = new DOMXPath($dom);
    $hrefs = $xpath->evaluate("/html/body//a");

    for($i = '0' ; $i < $hrefs->length; $i++){
    $href = $hrefs->item($i);
    $url = $href->getAttribute('href');
    $url = filter_var($url, FILTER_SANITIZE_URL);
    // validate url
    if(!filter_var($url, FILTER_VALIDATE_URL) === false){
    echo '<a href="'.$url.'">'.$url.'</a><br />';





    $conn =new mysqli('localhost', 'root', '' , 'mylink2');
    $sql = $conn->prepare("INSERT INTO site_data (author,title,tags) VALUES (?, ?, ?)");
    $author=$url;
    $title = $href->nodeValue;
    $tags= $url;
    $sql->bind_param("sss", $author, $title, $tags);
    if($sql->execute()) {
    $success_message = "Added Successfully";
    } else {
    $error_message = "Problem in Adding New Record";

    $sql->close();
    $conn->close();
    }
    }}
    ?>





    کد دتابیس:


    CREATE TABLE IF NOT EXISTS `site_data` (
    `id` int(11) NOT NULL,
    `author` varchar(500) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `title` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `tags` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

  2. # ADS




     

  3. #2
    عضو انجمن iran20host آواتار ها
    تاریخ عضویت
    Jul 2015
    نوشته ها
    101
    تشکر تشکر کرده 
    78
    تشکر تشکر شده 
    58
    تشکر شده در
    48 پست

    پیش فرض پاسخ : جلوگیری از ثبت داده تکراری در دیتابیس

    سلام و عرض ادب
    احتراما باید در دیتابیس key تعریف کنید.
    یعنی این فیلدی که شما میخواهید تکراری ثبت نشه داخل دیتابیس باید یک نوع ایندکس باشه.
    شرکت "داده پرداز آگرین زاب"به شماره ثبت :671 و شناسه ملی :14005984162 "مسئولیت محدود" ZABHOST.NET
    ارائه دهنده ی خدمات هاستینگ ,سرورمجازی ایران,نمایندگی هاست سی پنل ایران ,دارای نماد اعتماد 2 ستاره



  4. تعداد تشکر ها از iran20host به دلیل پست مفید


  5. #3
    عضو جدید
    تاریخ عضویت
    Jul 2019
    نوشته ها
    33
    تشکر تشکر کرده 
    13
    تشکر تشکر شده 
    8
    تشکر شده در
    8 پست

    پیش فرض پاسخ : جلوگیری از ثبت داده تکراری در دیتابیس

    سلام
    میشه بیشتر توضیح بدید یا لینکی که آموزش کامل داده همراه با مثال بهم بدید
    من هرچی گشتم پیدا نکردم
    این کد من باید چه شکلی بشه؟ میشه توی کد تغیر اعمال کنید ممنون میشم

  6. #4
    عضو انجمن lizard.tiny آواتار ها
    تاریخ عضویت
    Jul 2011
    محل سکونت
    miladworkshop.ir
    نوشته ها
    480
    تشکر تشکر کرده 
    234
    تشکر تشکر شده 
    959
    تشکر شده در
    478 پست

    پیش فرض پاسخ : جلوگیری از ثبت داده تکراری در دیتابیس

    سلام

    توی دیتاهایی که ثبت میکنید آدرس url رو هم توی دیتابیس ذخیره کنید

    موقع execute یا ذخیره کردن اطلاعات جدید توی دیتابیس, برسی کنید اگر URL توی دیتابیس موجود بود از import کردن صرف نظر کنید

    البته میتونید برای اینکار یک کد uniq هم بسازید

    مثلاً بجای ذخیره کردن url از عنوان استفاده کنید
    Contact Me >> Mobile : 09304443004 | Telegram ID : @miladworkshop | Email : info@miladworkshop.ir

  7. تعداد تشکر ها از lizard.tiny به دلیل پست مفید


  8. #5
    عضو انجمن iran20host آواتار ها
    تاریخ عضویت
    Jul 2015
    نوشته ها
    101
    تشکر تشکر کرده 
    78
    تشکر تشکر شده 
    58
    تشکر شده در
    48 پست

    پیش فرض پاسخ : جلوگیری از ثبت داده تکراری در دیتابیس

    نقل قول نوشته اصلی توسط seosaz نمایش پست ها
    کد دتابیس:

    CREATE TABLE IF NOT EXISTS `site_data` (
    `ID int NOTNULLUNIQUE,
    `author` varchar(500) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `title` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `tags` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;
    کد HTML:
    ID int NOT NULL UNIQUE
    اینو تست بفرمایید.
    ویرایش توسط iran20host : October 20th, 2019 در ساعت 20:33
    شرکت "داده پرداز آگرین زاب"به شماره ثبت :671 و شناسه ملی :14005984162 "مسئولیت محدود" ZABHOST.NET
    ارائه دهنده ی خدمات هاستینگ ,سرورمجازی ایران,نمایندگی هاست سی پنل ایران ,دارای نماد اعتماد 2 ستاره



  9. تعداد تشکر ها ازiran20host به دلیل پست مفید


  10. #6
    عضو جدید
    تاریخ عضویت
    Jul 2019
    نوشته ها
    33
    تشکر تشکر کرده 
    13
    تشکر تشکر شده 
    8
    تشکر شده در
    8 پست

    پیش فرض پاسخ : جلوگیری از ثبت داده تکراری در دیتابیس

    منظورتون اینه اینجوری بنزنم:
    کد:

    CREATE TABLE IF NOT EXISTS `site_data` (
    `ID` int NOT NULL UNIQUE,
    `author` varchar(500) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `title` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `tags` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

    - - - Updated - - -

    منظورتون اینه اینجوری بنزنم:
    کد:

    CREATE TABLE IF NOT EXISTS `site_data` (
    `ID` int NOT NULL UNIQUE,
    `author` varchar(500) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `title` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `tags` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;


    اگه منظورتون اینه با همین روش هم باز همونجوری تکراری ثبت میشه

  11. #7
    عضو انجمن iran20host آواتار ها
    تاریخ عضویت
    Jul 2015
    نوشته ها
    101
    تشکر تشکر کرده 
    78
    تشکر تشکر شده 
    58
    تشکر شده در
    48 پست

    پیش فرض پاسخ : جلوگیری از ثبت داده تکراری در دیتابیس

    نقل قول نوشته اصلی توسط seosaz نمایش پست ها
    منظورتون اینه اینجوری بنزنم:
    کد:

    CREATE TABLE IF NOT EXISTS `site_data` (
    `ID` int NOT NULL UNIQUE,
    `author` varchar(500) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `title` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `tags` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

    - - - Updated - - -

    منظورتون اینه اینجوری بنزنم:
    کد:

    CREATE TABLE IF NOT EXISTS `site_data` (
    `ID` int NOT NULL UNIQUE,
    `author` varchar(500) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `title` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL,
    `tags` varchar(1000) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;


    اگه منظورتون اینه با همین روش هم باز همونجوری تکراری ثبت میشه
    عزیز table ID مثال بود اصل کاری بونیک کردن تیبل بود شما باید لینک ها رو هم توی دیتابیس ذخیره کنید و اونم یونیک کنید که مشکلتون برطرف بشه.
    شرکت "داده پرداز آگرین زاب"به شماره ثبت :671 و شناسه ملی :14005984162 "مسئولیت محدود" ZABHOST.NET
    ارائه دهنده ی خدمات هاستینگ ,سرورمجازی ایران,نمایندگی هاست سی پنل ایران ,دارای نماد اعتماد 2 ستاره



  12. تعداد تشکر ها از iran20host به دلیل پست مفید


  13. #8
    عضو جدید
    تاریخ عضویت
    Jul 2019
    نوشته ها
    33
    تشکر تشکر کرده 
    13
    تشکر تشکر شده 
    8
    تشکر شده در
    8 پست

    پیش فرض پاسخ : جلوگیری از ثبت داده تکراری در دیتابیس

    نقل قول نوشته اصلی توسط iran20host نمایش پست ها
    کد HTML:
    ID int NOT NULL UNIQUE
    اینو تست بفرمایید.
    منظورتون اینه؟
    کد:

    CREATE TABLE IF NOT EXISTS `site_data` (
    `ID` int NOT NULL UNIQUE,
    `author` varchar(300) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL UNIQUE,
    `title` varchar(300) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL UNIQUE,
    `tags` varchar(300) CHARACTER SET utf8 COLLATE utf8_persian_ci NOT NULL UNIQUE
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=0 ;

    اینم نمیشه چرا باز نمیشه

  14. #9
    عضو انجمن lizard.tiny آواتار ها
    تاریخ عضویت
    Jul 2011
    محل سکونت
    miladworkshop.ir
    نوشته ها
    480
    تشکر تشکر کرده 
    234
    تشکر تشکر شده 
    959
    تشکر شده در
    478 پست

    پیش فرض پاسخ : جلوگیری از ثبت داده تکراری در دیتابیس

    نمونه کد تکمیل شده طبق نیاز شما : https://vrl.ir/umapyT
    Contact Me >> Mobile : 09304443004 | Telegram ID : @miladworkshop | Email : info@miladworkshop.ir

  15. تعداد تشکر ها از lizard.tiny به دلیل پست مفید


  16. #10
    عضو جدید
    تاریخ عضویت
    Jul 2019
    نوشته ها
    33
    تشکر تشکر کرده 
    13
    تشکر تشکر شده 
    8
    تشکر شده در
    8 پست

    پیش فرض پاسخ : جلوگیری از ثبت داده تکراری در دیتابیس

    ممنون دستتون درد نکنه


    - - - Updated - - -

    ممنون دستتون درد نکنه


    - - - Updated - - -

    نقل قول نوشته اصلی توسط lizard.tiny نمایش پست ها
    نمونه کد تکمیل شده طبق نیاز شما : https://vrl.ir/umapyT
    ممنون دستتون درد نکنه

  17. تعداد تشکر ها از seosaz به دلیل پست مفید


صفحه 1 از 2 12 آخرینآخرین

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

موضوعات مشابه

  1. مشکل در دیتابیس-عدم ایمپورت دیتا بیس اصلی (MariaDB 5.5.41)
    توسط dreamyeye در انجمن سوالات و مشکلات
    پاسخ ها: 3
    آخرين نوشته: March 31st, 2018, 11:00
  2. پاسخ ها: 3
    آخرين نوشته: September 26th, 2017, 00:34
  3. درخواست سرور مجازی از دیتاسنتر ایس کلو ( icecolo ) انگلیس
    توسط fashen در انجمن درخواست سرور مجازی
    پاسخ ها: 1
    آخرين نوشته: August 26th, 2014, 11:02
  4. پاسخ ها: 0
    آخرين نوشته: October 2nd, 2013, 22:14
  5. پاسخ ها: 5
    آخرين نوشته: August 6th, 2013, 07:11

مجوز های ارسال و ویرایش

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