Android JSON PHP проверяет наличие дублирующейся записи

#php #json #duplicates

#php #json #дубликаты

Вопрос:

В моем приложении для Android я использую JSON для сохранения сведений на сервере, и используются PHP-файлы. В моем PHP-коде я хотел бы проверить наличие дублирующейся записи, теперь в моем коде дублирующаяся запись не проверяется. Я привожу свой код ниже, где enties — это имя пользователя, среднее имя, фамилия, день рождения, месяц рождения, год рождения, электронная почта, номер мобильного телефона и альтернативный адрес электронной почты. Мне нужно было проверить дублирующуюся запись… например, если имя, фамилия и год рождения совпадают, то сохранять не нужно.

 <?php


// array for JSON response
$response = array();

// check for required fields
if (isset($_POST['firstname']) amp;amp; isset($_POST['middlename']) amp;amp; isset($_POST['lastname']) amp;amp; isset($_POST['dayb']) amp;amp; isset($_POST['daym']) amp;amp; isset($_POST['dayy']) amp;amp; isset($_POST['mnumber']) amp;amp; isset($_POST['pemail']) amp;amp; isset($_POST['aemail'])) {

    $firstname = $_POST['firstname'];
    $middlename = $_POST['middlename'];
    $lastname = $_POST['lastname'];

    $dayb = $_POST['dayb'];
    $daym = $_POST['daym'];
    $dayy = $_POST['dayy'];

    $mnumber = $_POST['mnumber'];
    $pemail = $_POST['pemail'];
    $aemail = $_POST['aemail'];

    // include db connect class
    require_once __DIR__ . '/db_connect.php';

    // connecting to db
    $db = new DB_CONNECT();



    // mysql inserting a new row
    $result = mysql_query("INSERT INTO userentry(firstname,middlename, lastname,  dayb, daym, dayy, mnumber, pemail, aemail) VALUES('$firstname', '$middlename', '$lastname',  '$dayb', '$daym', '$dayy', '$mnumber', '$pemail', '$aemail')");

    // check if row inserted or not
    if ($result) {
        // successfully inserted into database
        $response["success"] = 1;
        $response["message"] = "Product successfully created.";

        // echoing JSON response
        echo json_encode($response);
    } else {
        // failed to insert row
        $response["success"] = 0;
        $response["message"] = "Oops! An error occurred.";

        // echoing JSON response
        echo json_encode($response);
    }
} 
else 
{
    // required field is missing
    $response["success"] = 0;
    $response["message"] = "Required field(s) is missing";

    // echoing JSON response
    echo json_encode($response);
}




?>
  

Ответ №1:

Я не знаю синтаксис PHP, но вам просто нужно изменить ваш запрос insert

Пример:-

 INSERT INTO userentry (firstname,middlename, lastname,  dayb, daym, dayy, mnumber, pemail, aemail)  SELECT '$firstname', '$middlename', '$lastname',  '$dayb', '$daym', '$dayy', '$mnumber', '$pemail', '$aemail' WHERE NOT EXISTS  (SELECT aemail,mnumber   FROM tbl_responce    WHERE aemail = '$aemail' and mnumber   ='$mnumber')
  

Ответ №2:

Я думаю, вам нужно сделать запрос, который будет выполнять проверку.. перед вставкой в базу данных попробуйте использовать этот запрос.

 SELECT * FROM your_table WHERE first_name = $_POST['firstname'] AND last_name = $_POST['firstname'] 
  

Затем подсчитайте количество выбранных запросов.

 if($result) {
    //there is a duplicate data in database. Do not insert
}
else{
  //insert your data here.
}
  

Ответ №3:

ниже приведен код, который должен работать нормально для вас

 $resp = mysql_fetch_assoc(mysql_query("SELECT count(*) as is_exist
                               FROM userentry
                               WHERE firstname='".$firstname."' and lastname='".$lastname."'
                                     and dayb='".$dayb."'" and daym='".$daym."'"
                                     and dayy='".$dayy."'"));

if($resp['is_exist']==0){
// Insert code
$result = mysql_query("INSERT INTO userentry(firstname,middlename, lastname,  dayb, daym, dayy, mnumber, pemail, aemail) VALUES('$firstname', '$middlename', '$lastname',  '$dayb', '$daym', '$dayy', '$mnumber', '$pemail', '$aemail')");
// check if row inserted or not
if ($result) {
    // successfully inserted into database
    $response["success"] = 1;
    $response["message"] = "Product successfully created.";

    // echoing JSON response
    echo json_encode($response);
} else {
    // failed to insert row
    $response["success"] = 0;
    $response["message"] = "Oops! An error occurred.";
    // echoing JSON response
    echo json_encode($response);
}
}else
{
//prompt that the record exist!
    $response["success"] = 0;
    $response["message"] = "Oops! User Already Exist";

    // echoing JSON response
    echo json_encode($response);
}