2017-03-31 63 views
0

嘿,我有一个在线数据库,需要定期填充传感器值。有7个变量(列)加上一个时间戳列来制作表格的每一行。问题是这些变量是一次一个地被压入一个,其余的都是0.现在我编写一个算法,如果最后一行的所有值(通过时间戳)被完全填充(不是0),那么只会插入一行,否则它将更新最新的行。 这里是我的PHP代码,用于插入一次插入3个变量的插入php文件 - 温度,压力和高度。 ?如何通过比较时间戳来更新特定的行?

<?php 

// Prepare variables for database connection 

$dbusername = "uxpertla_terr"; // enter database username, I used "arduino" in step 2.2 
$dbpassword = "abc123"; // enter database password, I used "arduinotest" in step 2.2 
$server = "localhost"; 

// Connect to your database 

$dbconnect = mysqli_connect($server, $dbusername, $dbpassword); 

// Prepare the SQL statement 
    $sdl = "SELECT * FROM uxpertla_test_db.testt ORDER BY time DESC LIMIT 1"; 
    $snd=mysqli_query($sdl); 
    $row = mysqli_fetch_array($snd,MYSQLI_ASSOC); 
    if($row) 
    { 
    if($row['Temperature']==0||$row['Pressure']==0||$row['Humidity']==0||$row['Light']==0) 
    { 
    $sql = "UPDATE uxpertla_test_db.testt 
    SET temp='".$_GET["value"]."', 
    pressure='".$_GET["value2"]."', 
    altitude='".$_GET["value3"]."' 
    WHERE time=".strtotime($row['time']).""; 
    } 
    else 
    $sql = "INSERT INTO uxpertla_test_db.testt 
    (temp,pressure,altitude) VALUES('".$_GET["value"]."', '".$_GET["value2"]."','".$_GET["value3"]."')"; 
    } 
    else 
    $sql = "INSERT INTO uxpertla_test_db.testt 
    (temp,pressure,altitude) VALUES('".$_GET["value"]."', '".$_GET["value2"]."','".$_GET["value3"]."')"; 

// Execute SQL statement 

mysqli_query($sql); 

>

很抱歉,如果代码不是很漂亮,但我需要帮助的,其中在第二,如果块更新查询的WHERE子句..

+0

如果您要指定一个时间戳,说在一段设定时间“之间”,你可以使用SQ L关键字之间。 timeValue介于'timeOne'和'timeTwo'之间。对不起,空手 –

+0

您正在使用未经维护的,不安全的,弃用的数据库功能。 PHP十多年来一直鼓励使用替代品。停下来! http://stackoverflow.com/q/12859942/1255289 – miken32

+0

我知道弃用,但所有的MySQL函数工作。他们不是问题。问题是更新语句的where子句。请帮我解决这个问题.. –

回答

0

想出答案..:P

<?php 

// Prepare variables for database connection 

$dbusername = "uxpertla_terr"; // enter database username, I used "arduino" in step 2.2 
$dbpassword = "abc123"; // enter database password, I used "arduinotest" in step 2.2 
$server = "localhost"; 

// Connect to your database 

$dbconnect = mysqli_connect($server, $dbusername, $dbpassword); 

    $sdl = "SELECT * FROM uxpertla_test_db.testt ORDER BY time DESC LIMIT 1"; 
    $snd=mysqli_query($dbconnect,$sdl); 
    $row = mysqli_fetch_array($snd,MYSQLI_ASSOC); 
    if($row['Temperature']==0||$row['Pressure']==0||$row['Humidity']==0||$row['Light']==0) 
    { 
    $sql = "UPDATE uxpertla_test_db.testt 
    SET temp='".$_GET["value"]."', 
    pressure='".$_GET["value2"]."', 
    altitude='".$_GET["value3"]."' 
    ORDER BY time DESC LIMIT 1";   
    } 
    else 
    $sql = "INSERT INTO uxpertla_test_db.testt 
    (temp,pressure,altitude) VALUES('".$_GET["value"]."', '".$_GET["value2"]."','".$_GET["value3"]."')"; 

// Execute SQL statement 

mysqli_query($dbconnect,$sql); 

?>