如何通过比较时间戳来更新特定的行?

时间:2017-03-31 17:18:21

标签: php sql timestamp

嘿,我有一个在线数据库,需要定期填充传感器值。有7个变量(列)与时间戳列相结合,以生成表的每一行。问题是这些变量一次被推几个,其余的为0.现在我编写一个算法,如果最新行(按时间戳)的所有值都被完全填充(不是0),它只会插入一行否则它会更新最新的一行。 这是我的一个插入php文件的PHP代码,它一次插入3个变量 - 临时,压力和高度。

<?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);

&GT;

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

1 个答案:

答案 0 :(得分: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);

&GT;