رفتن به مطلب
mehran-b

چک کردن وجود یک رکورد در یک تیبل با استفاده از کلاس wpdb

پست های پیشنهاد شده

سلام بر دوستان و اساتید

در حال کدنویسی یک پلاگین هستم که پلاگین بنده یک تیبل جدید در دیتابیس وردپرس ایجاد میکنه تیبل ایجاد شده شامل سه ستون هست که عبارت است از id و link و source_name حالا اگر بخوام با کلاس wpdb چک کنم یه مقدار خاصی توی ستون link هست باید از کدوم متد این کلاس و چگونه استفاده کنم؟

تشکر

ویرایش شده توسط mehran-b

به اشتراک گذاری این ارسال


لینک به ارسال

از متد get_row یا get_var استفاده کنید

$ret = $wpdb->get_var("select id from table where link='xXx'");
if(empty($ret))
echo 'not found';
else
echo 'found';

جای table اسم جدول و جای xXx مقدار مورد نظر رو قرار بدید

به اشتراک گذاری این ارسال


لینک به ارسال
در ۱ ساعت قبل، lord_viper گفته است :

از متد get_row یا get_var استفاده کنید


$ret = $wpdb->get_var("select id from table where link='xXx'");
if(empty($ret))
echo 'not found';
else
echo 'found';

جای table اسم جدول و جای xXx مقدار مورد نظر رو قرار بدید

جناب @lord_viper موردی که شما فرمودید صد در صد درسته ولی نمیدونم چرا درست عمل نمیکنه.

من تابعی که برای این کار نوشتم رو قرار میدم اگر نظری داشتید بگید.

<?
function nap_add_post_to_db($post_links = array(), $source_name) {
	global $wpdb;
	
	if(!empty($post_links)) :
	
	$table_name = NAPTABLE;
	
		foreach($post_links as $link) :
		
		if(is_null($wpdb->get_var("SELECT id FROM $table_name WHERE link='$link'")))
			$wpdb->query($wpdb->prepare("INSERT INTO $table_name (link, source_name) VALUES (%s, %s)", $link, $source_name));
		
		endforeach;
	
	endif;
	
}
?>

 

ویرایش شده توسط mehran-b

به اشتراک گذاری این ارسال


لینک به ارسال

سلام وقت بخیر سوالم کمی بی ربطه و چون فقط من از این روش برای یک افزونه که دارم مینویسم استفاده کردم میپرسم . من میخوام یک سری داده رو فقط به خود کاربر الصاق کنم یعنی اینکه من یه جدول مشخصات خرید دارم ( فروشگاه انلاین نیست و باید دستی وارد بشه ) ولی باید هر کاربر بینه

از این روش اتصال من پایگاه داده رو متصل شدم و مشکلی ندارم و الان فقط میخوام بدونم چه طوری میشه که بتونم بگم کاربر رو انتخاب کنه و بعد داده ها رو بهش وصل کنه یعنی من توی ورودی بزنم کاربر شماره 1 فلان مقدار بعد همون کاربر هم بتونه ببینه

به اشتراک گذاری این ارسال


لینک به ارسال

جناب @lord_viper مشکل حل شد.

علت ایجاد مشکل طولانی بودن لینک ها بود که برای حل این مشکل از هر لینک یک هش با الگوریتم SHA256 ساختم و ستونی که هش توش ذخیره میشد رو Primary کردم در نتیجه دیگه اصلا احتیاج نیست که وجود لینک در تیبل رو بررسی کنم.

به اشتراک گذاری این ارسال


لینک به ارسال
در 16 ساعت قبل، mbm159 گفته است :

سلام وقت بخیر سوالم کمی بی ربطه و چون فقط من از این روش برای یک افزونه که دارم مینویسم استفاده کردم میپرسم . من میخوام یک سری داده رو فقط به خود کاربر الصاق کنم یعنی اینکه من یه جدول مشخصات خرید دارم ( فروشگاه انلاین نیست و باید دستی وارد بشه ) ولی باید هر کاربر بینه

از این روش اتصال من پایگاه داده رو متصل شدم و مشکلی ندارم و الان فقط میخوام بدونم چه طوری میشه که بتونم بگم کاربر رو انتخاب کنه و بعد داده ها رو بهش وصل کنه یعنی من توی ورودی بزنم کاربر شماره 1 فلان مقدار بعد همون کاربر هم بتونه ببینه

سوال شما به این تاپیک مربوط نیست

جواب:

شما باید برای در جدول خود برای داده ها یک فیلد user_id در نظر بگیرید که id کاربر مورد نظر رو درونش قرار بدید با این کار به راحتی میتونین با یک سلکت اطلاعات هر کاربر رو بیرون بکشین

مثلا

select * from table where user_id=1

 

به اشتراک گذاری این ارسال


لینک به ارسال

 

در در ۱۳۹۶/۵/۱۶ ه‍.ش. at 14:56، lord_viper گفته است :

سوال شما به این تاپیک مربوط نیست

جواب:

شما باید برای در جدول خود برای داده ها یک فیلد user_id در نظر بگیرید که id کاربر مورد نظر رو درونش قرار بدید با این کار به راحتی میتونین با یک سلکت اطلاعات هر کاربر رو بیرون بکشین

مثلا


select * from table where user_id=1

 

بسیار سپاسگذارم . ممنون از نظرتون بله میدونم مربوط نیست ولی خب من درمانده بودم چ کنم مچکرم ک جواب دادین امتحان میکنم اطلاع میدم .

به اشتراک گذاری این ارسال


لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


  • مطالب مشابه

    • توسط Ali1
      سلام
      این اخطار تو فوتر قالب من هست
      میشه کمک کنید تا درستش کنم؟
      متن:


      Warning: Missing argument 2 for wpdb::prepare(), called in /home1/ali/public_html/blog/wp/wp-content/themes/inove/footer.php on line 22 and defined in /home1/ali110/public_html/blog/wp/wp-includes/wp-db.php on line 1152

      اینم کد توی فوتر:


      </div>
      <!-- main END -->
      <?php
      $options = get_option('inove_options');
      global $inove_nosidebar;
      if(!$options['nosidebar'] && !$inove_nosidebar) {
      get_sidebar();
      }
      ?>
      <div class="fixed"></div>
      </div>
      <!-- content END -->
      <!-- footer START -->
      <div id="footer">
      <a id="gotop" href="#" onclick="MGJS.goTop();return false;"><?php _e('Top', 'inove'); ?></a>
      <a id="powered" href="http://wordpress.org/">WordPress</a>
      <div id="copyright">
      <?php
      global $wpdb;
      $post_datetimes = $wpdb->get_row($wpdb->prepare("SELECT YEAR(min(post_date_gmt)) AS firstyear, YEAR(max(post_date_gmt)) AS lastyear FROM $wpdb->posts WHERE post_date_gmt > 1970"));
      if ($post_datetimes) {
      $firstpost_year = $post_datetimes->firstyear;
      $lastpost_year = $post_datetimes->lastyear;
      $copyright = __('Copyright © ', 'inove') . $firstpost_year;
      if($firstpost_year != $lastpost_year) {
      $copyright .= '-'. $lastpost_year;
      }
      $copyright .= ' ';
      echo $copyright;
      bloginfo('name');
      }
      ?>
      </div>
      <div id="themeinfo">
      طراح: علی نوبری - کد نویس و طراح قالب اصلی: NeoEase
      </div>
      </div>
      <!-- footer END -->
      </div>
      <!-- container END -->
      </div>
      <!-- wrap END -->
      <?php
      wp_footer();
      $options = get_option('inove_options');
      if ($options['analytics']) {
      echo($options['analytics_content']);
      }
      ?>
      </body>
      </html>


      اینم خود فایل فوتر قالبم:
      footer.php
      خیلی خیلی ممنون
×
×
  • اضافه کردن...