【问题标题】:How to check if a value exists in one of two WordPress database tables如何检查两个WordPress数据库表之一中是否存在值
【发布时间】:2018-08-15 14:36:45
【问题描述】:

我有两个注册表单,individual-register.php 和 school-registration.php。每个人都将数据保存在自己不同的表中。每个人都创建自己独特的用户类型(个人和学校)

在这两个文件上,我都成功地检查了数据库中是否存在电子邮件地址,如果存在则返回错误消息。但是现在我需要检查以确保注册时的电子邮件地址不存在于两个表中的任何一个中。

这很奇怪,因为在第一个代码块(individual-register.php)中,它允许我注册并且它根本不会给我任何错误,除非我尝试使用我知道存在于对应表中的电子邮件地址到那个表格。 我在teacher-register.php 中有类似的东西,但它根本不允许我注册任何东西并返回错误消息,即使我输入了一个全新的电子邮件地址。请看代码:

个人注册.php

        $results_match_email = $wpdb->get_row( 'SELECT * FROM wp_register where artistemail="'.$_REQUEST['artistemail'].'"');
  $check_school_email=$wpdb->get_row( 'SELECT * FROM wp_register_teacher where schoolemail="'.$_REQUEST['schoolemail'].'"');


    if(count($results_match_email) || count($check_school_email) > 0){
      $insert_save=0;
    }


    else{
        $insert_save=$wpdb->insert("wp_register",$insert_reg);
        $lastid = $wpdb->insert_id;
    }   

教师注册.php

    $results_match_email = $wpdb->get_row( 'SELECT * FROM wp_register_teacher where schoolemail="'.$_REQUEST['schoolemail'].'"');

       $check_individual_email=$wpdb->get_row( 'SELECT * FROM wp_register where artistemail="'.$_REQUEST['artistemail'].'"'); 


       if(count($results_match_email) > 0){

  $insert_save=0;

       }
       else
       {
          $insert_save=$wpdb->insert("wp_register_teacher",$insert_reg); 
          $lastid_teacher = $wpdb->insert_id; 
       }   

【问题讨论】:

  • 如果可能,请考虑更改此设置,以便有一个表格,其中包含一个字段,指示条目是否为教师/个人。这是它通常完成的方式并消除了此类问题。
  • 老实说,我的知识和经验非常有限。我更愿意尝试让这段代码正常工作

标签: php mysql database wordpress


【解决方案1】:

你可以这样做:

Select count(*) as availableemailcount from wp_register, wp_register_teacher where wp_register.artistemail='a@a.com' or wp_register_teacher.schoolemail='a@a.com' 

运行此查询将输出计数。如果计数大于 0,则电子邮件存在,否则不存在。

【讨论】:

  • 我的代码中的“availableemailcount”是什么?我应该将它分配给一个变量吗?
  • 可用电子邮件计数是您的两个表中具有指定电子邮件的现有用户的总数,例如 (a@a.com)。将该值分配到变量中,然后放入 if-else 条件。希望这对您有用!
  • 所以我试了一下.....没有用 $results_match_email = $wpdb->get_row('Select count(*) as availableemailcount from wp_register, wp_register_teacher where wp_register.artistemail="'. $_REQUEST['artistemail'].'" 或 wp_register_teacher.schoolemail="'.$_REQUEST['schoolemail'].'"'); if(count($results_match_email) >0){ $insert_save=0;它告诉我电子邮件地址已经存在,即使它不存在
猜你喜欢
  • 2016-09-26
  • 1970-01-01
  • 1970-01-01
  • 2015-05-25
  • 2018-10-15
  • 2015-04-01
  • 1970-01-01
  • 2019-11-13
  • 2019-12-05
相关资源
最近更新 更多