Php 检查select查询的结果,然后与当前值进行比较(如果可用),则不应插入
我正在使用地理定位api将latlong保存到mysql数据库中,但问题是数据库中插入的latlong是相同的。我正在尝试检查mysql表的最后一行,然后与当前latlong进行比较,如果两者相同,则不应执行。请帮我获取此信息。提前感谢Php 检查select查询的结果,然后与当前值进行比较(如果可用),则不应插入,php,mysql,Php,Mysql,我正在使用地理定位api将latlong保存到mysql数据库中,但问题是数据库中插入的latlong是相同的。我正在尝试检查mysql表的最后一行,然后与当前latlong进行比较,如果两者相同,则不应执行。请帮我获取此信息。提前感谢 纬度=19.1579; $longitude=72.9935; $address=airoli; $sql=“从tracklatlong ORDER按id DESC LIMIT 1选择纬度”; $result=mysqli\u查询($sql,$conn); $r
纬度=19.1579;
$longitude=72.9935;
$address=airoli;
$sql=“从tracklatlong ORDER按id DESC LIMIT 1选择纬度”;
$result=mysqli\u查询($sql,$conn);
$row=mysqli\u fetch\u数组($result);
$currentlat=$_行[“纬度];
如果($currentlat!=$latitude){
$query=“插入'tracklatlong'(纬度、经度、地址)值('$latitude','$longitude','$address')”;
如果($conn->query($query)==TRUE){
呼应“成功”;
}
否则{
echo“失败”;
}
}
否则{
回声“已经存在”;
}
正如所理解的,您需要检查latitute或longitute是否在数据库表中
只有在发现false时才插入它
我将PHP面向对象与mysqli准备的语句一起使用
此代码仅在latitute和longitute相同时返回false。
如果希望输出返回false,那么除了在选择查询中添加或运算符外,还有任何一个匹配输出
这是包含数据的表图像
下面是html代码:index.php
<?php
include('co_ordinate.php');
$newcoordinate = new co_ordinate();
?>
<!DOCTYPE html>
<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="col-md-6 col-md-offset-3" style="margin-top:100px;">
<form action="" method="post">
<div class="form-group">
<i>Add Latitute</i>
<input type="text" name="latitute" class="form-control">
</div>
<div class="form-group">
<i>Add Longitute</i>
<input type="text" name="longitute" class="form-control">
</div>
<div class="form-group">
<input type="submit" name="addcoordinate" class="btn btn-primary">
</div>
</form>
<?php
if(isset($_POST['addcoordinate'])){
$latitude = $_POST['latitute'];
$longitute = $_POST['longitute'];
$newcoordinate->getCo_ordinates($latitude,$longitute);
}
?>
</div>
</body>
</html>
加拉提图
添加长形
下面是类文件:coordination.php
<?php
class co_ordinate{
private $link;
function __construct(){
$this->link = new mysqli ('localhost','root','','example');
if(mysqli_connect_errno()){
die("connection Failed".mysqli_connect_errno());
}
}
function getCo_ordinates($latitude,$longitute){
$sql = $this->link->stmt_init();
if($sql->prepare("SELECT latitude,longitude FROM tracklatlong WHERE latitude=? AND longitude= ?")){
$sql->bind_param('dd',$latitude,$longitute);
$sql->execute();
$sql->store_result();
if($sql->num_rows > 0){
echo "The Co-Ordinates Already Exists";
}
else
{
$query = $this->link->stmt_init();
if($query->prepare("INSERT INTO tracklatlong (latitude,longitude) VALUES (?,?)")){
$query->bind_param('dd',$latitude,$longitute);
$query->execute();
echo "The Co-Ordinates Inserted Successfully";
}
}
}
else
{
echo $this->link->error;
}
}
}
?>
正如所理解的,您需要检查latitute或longitute是否在数据库表中
只有在发现false时才插入它
我将PHP面向对象与mysqli准备的语句一起使用
此代码仅在latitute和longitute相同时返回false。
如果希望输出返回false,那么除了在选择查询中添加或运算符外,还有任何一个匹配输出
这是包含数据的表图像
下面是html代码:index.php
<?php
include('co_ordinate.php');
$newcoordinate = new co_ordinate();
?>
<!DOCTYPE html>
<html>
<head>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<!-- jQuery library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<!-- Latest compiled JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</head>
<body>
<div class="col-md-6 col-md-offset-3" style="margin-top:100px;">
<form action="" method="post">
<div class="form-group">
<i>Add Latitute</i>
<input type="text" name="latitute" class="form-control">
</div>
<div class="form-group">
<i>Add Longitute</i>
<input type="text" name="longitute" class="form-control">
</div>
<div class="form-group">
<input type="submit" name="addcoordinate" class="btn btn-primary">
</div>
</form>
<?php
if(isset($_POST['addcoordinate'])){
$latitude = $_POST['latitute'];
$longitute = $_POST['longitute'];
$newcoordinate->getCo_ordinates($latitude,$longitute);
}
?>
</div>
</body>
</html>
加拉提图
添加长形
下面是类文件:coordination.php
<?php
class co_ordinate{
private $link;
function __construct(){
$this->link = new mysqli ('localhost','root','','example');
if(mysqli_connect_errno()){
die("connection Failed".mysqli_connect_errno());
}
}
function getCo_ordinates($latitude,$longitute){
$sql = $this->link->stmt_init();
if($sql->prepare("SELECT latitude,longitude FROM tracklatlong WHERE latitude=? AND longitude= ?")){
$sql->bind_param('dd',$latitude,$longitute);
$sql->execute();
$sql->store_result();
if($sql->num_rows > 0){
echo "The Co-Ordinates Already Exists";
}
else
{
$query = $this->link->stmt_init();
if($query->prepare("INSERT INTO tracklatlong (latitude,longitude) VALUES (?,?)")){
$query->bind_param('dd',$latitude,$longitute);
$query->execute();
echo "The Co-Ordinates Inserted Successfully";
}
}
}
else
{
echo $this->link->error;
}
}
}
?>
因此,您希望先检查数据库中的lat long,然后添加$currentlat=$\u行[“纬度]代码>=>$currentlat=$row[“纬度”]
在复合(纬度、经度)
上添加唯一的约束@Anant yes要检查的数据库的最后一行,如果当前latlong相同,则不应插入。知道吗?那么您的问题在于查询数据库?如果您没有从$row['latitude']
中得到任何结果,那么您将始终插入一条新记录…因为$latitude
(如果它有值)将永远不会等于$currentlat
,所以您希望先检查数据库中的lat long,然后添加$currentlat=$\u row[“latitude”]代码>=>$currentlat=$row[“纬度”]
在复合(纬度、经度)
上添加唯一的约束@Anant yes要检查的数据库的最后一行,如果当前latlong相同,则不应插入。知道吗?那么您的问题在于查询数据库?如果您没有从$row['latitude']
获得任何结果,那么您将始终插入一条新记录…因为$latitude
(如果它有值)将永远不会等于$currentlat