2017-03-31 1 views
0

안녕하세요 저는 정기적으로 센서 값을 입력해야하는 온라인 데이터베이스가 있습니다. 테이블의 각 행을 만들기 위해 타임 스탬프 열과 결합 된 7 개의 변수 (열)가 있습니다. 문제는 이들 변수가 나머지는 0으로 한 번에 몇 개씩 푸시됩니다. 이제 가장 최근 행의 모든 ​​값 (타임 스탬프 기준)이 완전히 0이 아닌 값으로 채워지면 행을 삽입하는 알고리즘을 코딩합니다. 최신 행을 업데이트합니다. 임시 변수, 압력 및 고도 (temp, pressure, altitude)를 한 번에 3 개의 변수를 삽입하는 삽입 PHP 파일 중 하나에 대한 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); 

>

죄송 코드가 꽤 아니지만, 내가 도움이 필요하면 블록의 경우 두 번째에서 업데이트 쿼리의 절 ..

+0

당신이 타임 스탬프를 대상으로하는 경우는, 설정 한 시간 동안 '사이', 당신은 SQ를 사용할 수에 말 L 키워드 사이. where timeValue는 'timeOne'과 'timeTwo'사이에 있습니다. 자유의 손에 죄송합니다 –

+0

당신은 유지 보수가되지 않고 비보안적인 데이터베이스 기능을 사용하고 있습니다. PHP는 십년 이상 동안 대안의 사용을 장려 해 왔습니다. 그냥 멈춰! http://stackoverflow.com/q/12859942/1255289 – miken32

+0

나는 deprecation을 알고 있지만 모든 mysql 함수가 작동합니다. 그것들은 문제가 아닙니다. 문제는 update 문의 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); 

?>

관련 문제