#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);
}