[ask] ON DUPLICATE KEY UPDATE


Status
Not open for further replies.

xpreborn

Apprentice 1.0
Mas bisa jabarkan variable yang dibangun di fungsi get_data, agar query REPLACE nya bisa jalan.
Besok dilanjut lagi, dinginkan badan dulu :D
Ga ada error tp tidak ada yang terecord didatabase juga, sepertinya masih nyangkut diclue yg ini
 

xpreborn

Apprentice 1.0
Sudah saya lanjut coba lagi dan kodenya saya buat seperti ini :
Dengan logika pengkondisiannya :
1. Ketika dijalankan dia akan ngeping satu per satu IP yang diambil dari table listip,
2a. Jika IPnya bisa diping :
---->>akan dicek ditable coba apakah ip address tersebut ada, jika ada dia akan update status dan datenya,
---->>Dan jika misalnya belum ada dia akan insert ke table coba untuk field ipaddress | status | tglalive
2b. Jika IPnya tidak bisa diping :
---->>akan dicek ditable coba apakah ip address tersebut ada , jika ada dengan status = ALIVE maka akan diupdate field status | tgldown
----->>Jika ada dengan status = DOWN maka akan diupdate field status
----->>Jika tidak ada maka akan diinsert ke table coba ipaddress | status | tgldown
3. Nah ketika saya coba test jalankan, untuk insert berjalan dgn baik namun ketika update tidak berfungsi (tidak ada berubah setelah insert)
Sepertinya ada yang salah dipengkondisian saya, namun saya kurang tahu yang mananya, kira2 apa yang harus saya benahi yach Om?

Code:
<?php
function pingAddress($ip) {
$date = date("Y-m-d H:i:s");
include("koneksi.php");

    $pingresult = exec("ping -c3 $ip", $outcome, $status);
    if (0 == $status) {
        if($result = mysqli_query($con, "SELECT ipaddress,status FROM coba WHERE ipaddress = $ip") && mysqli_num_rows($result > 0))
        $query = "UPDATE coba SET status='ALIVE',tglalive='$date' WHERE ipaddress='$ip'";
        else
        $qry = mysqli_query($con, "INSERT INTO coba (ipaddress, status, tglalive) VALUES ('$ip','ALIVE','$date')");

    } else {
        if($result = mysqli_query($con, "SELECT ipaddress,status FROM coba WHERE ipaddress = $ip AND status = ALIVE") && mysqli_num_rows($result > 0))
        $query = "UPDATE coba SET status='DOWN', tgldown='$date' WHERE ipaddress='$ip'";

        if($result = mysqli_query($con, "SELECT ipaddress,status FROM coba WHERE ipaddress = $ip AND status = DOWN") && mysqli_num_rows($result > 0))
        $query = "UPDATE coba SET status='DOWN' WHERE ipaddress = '$ip'";

        else
        $qry = mysqli_query($con, "INSERT INTO coba (ipaddress, status, tgldown) VALUES ('$ip','DOWN','$date')");
    }
        mysqli_close($con);
}
include("koneksi.php");
$ipaddress = array();
$query = "SELECT ipaddress from listip";
$result = mysqli_query($con, $query);
while(list($ipaddress) = mysqli_fetch_row($result)) {

pingAddress($ipaddress);
}
 
Status
Not open for further replies.

Top