2013-04-22 51 views
-1

我想讓我的php網站更新mysql數據庫,這取決於用戶點擊哪個(兩個之一)鏈接,但是,我要麼在數據庫中獲得這兩個鏈接,要麼只是一樣一。我正在使用if語句,因爲我試圖區分點擊的鏈接。當用戶點擊鏈接時更新數據庫中的狀態php

我試過使用$_GET['state'],$_REQUEST['state'],重新排列我的代碼,或使用2 if語句而不是1 else語句,但仍然沒有幫助。 (curr_stat是我的表),這裏是我的代碼:

<?php 
//if links are clicked, will write to database the status 

$connect_error= 'Sorry, we are experiencing connection problems.'; 
$db_name = "database name"; 
$connection = @mysql_connect("some host", "some username","password") or die($connect_error); 
$db3 = @mysql_select_db($db_name,$connection) or die($connect_error); 

//if statement 

$unlock = '<a href="doorlock.php?state=1">UNLOCK &nbsp;</a>&nbsp;'; 
echo $unlock; 

$lock = '<a href="doorlock.php?state=0">LOCK</a>'; 
echo $lock; 

if ($_GET['state'] == 1){ 
    $one = 1; 
    mysql_query("INSERT INTO curr_stat(status) VALUES($one)"); 
} 
elseif ($_GET['state'] == 0){ 
    $zero = 0; 
    mysql_query("INSERT INTO curr_stat(status) VALUES($zero)"); 
} 
?> 
+0

我沒有得到確切的問題。如果你這樣做,你會添加一個新的行到您的curr_stat表中,而不依賴於點擊用戶。因此,如果兩個用戶打開該站點並單擊一個鏈接,那麼您的數據庫中將有兩個用戶。這是什麼意思? – 2013-04-22 00:26:38

+0

第1步:顯示包含鏈接的html頁面。 第2步:用戶點擊鏈接。 第3步:PHP注意到點擊並記錄它。 請嘗試瞭解步驟並修改您的代碼以解決您的問題。 – Alix 2013-04-22 00:30:42

+0

@dasKeks爲curr_stat添加新行的目的是爲了獲得那些點擊鏈接的歷史記錄,因爲這個網站是用於電子門鎖的。創建新行,保存「歷史」作爲所有有權訪問的用戶的活動日誌,查看所有以前的鎖定狀態,因此能夠查看他們的房屋是否被鎖定。 – 2013-04-22 00:33:09

回答

0

你有一個問題,你的if語句:

如果得到變量state沒有定義的條件($_GET['state'] == 0)將返回true。

因此,如果您打開沒有任何參數的網站,則會插入狀態爲0的新行。

這就是爲什麼你要麼geht 0和1兩個次0

相反,你應該測試值不等於零。

$unlock = '<a href="doorlock.php?state=1">UNLOCK &nbsp;</a>&nbsp;'; 
echo $unlock; 

$lock = '<a href="doorlock.php?state=-1">LOCK</a>'; 
echo $lock; 

if ($_GET['state'] == 1){ 
    $one = 1; 
    mysql_query("INSERT INTO curr_stat(status) VALUES($one)"); 
} 
elseif ($_GET['state'] == -1){ 
    $zero = 0; 
    mysql_query("INSERT INTO curr_stat(status) VALUES($zero)"); 
} 
?> 
+0

我還是新來的PHP,我不知道如何定義它。我認爲這是可以使用它,因爲它在doorlock.php?state = 1/0. – 2013-04-22 01:33:16

+0

我得到它的工作,使用不同的方法。不管怎樣,謝謝你!將很快發佈答案! – 2013-04-22 03:27:51

0

我得到它的工作!我最終嘗試了一些不同的東西。我有一個html文件,它也保存狀態,一個整數,1或0,根據點擊哪個鏈接而改變(doorlock.php?state = 0,它被鎖定)。我使用了一個函數來打開該文件,並讀取文件中的數據。我保存了這些數據,並有一條if語句寫入數據庫。這裏是我的代碼:

<?php 
    //if links are clicked, will write to database the status 

    $connect_error= 'Sorry, we are experiencing connection problems.'; 
    $db_name = "database name"; 
    $connection = @mysql_connect("some host", "some username","password") or   die($connect_error); 
    $db = @mysql_select_db($db_name,$connection) or die($connect_error); 

    //displays links 
$unlock = '<a href="doorlock.php?state=1">UNLOCK &nbsp;</a>&nbsp;'; 
    echo $unlock; 

    $lock = '<a href="doorlock.php?state=0">LOCK</a>'; 
    echo $lock; 

//opens Lockstate.html file,and reads the data stored there 
$file = "Lockstate.html"; 
$fh = fopen($file, 'r'); 
$data = fread($fh, 1); 
fclose($fh); 
$state = $data; 

//if statement to know what to write to database depending on the new status 
// & displays it on the page after being clicked 
if($data == 1){ 
    echo 'Door is now unlocked.'; 
    $one = 1; 
    mysql_query("INSERT INTO curr_stat(status) VALUES($one)"); 
} 
if ($data == 0){ 
    echo 'Door is now locked.'; 
    $zero = 0; 
    mysql_query("INSERT INTO curr_stat(status) VALUES($zero)"); 
} 
?> 
0

<td> <?PHP echo "<a href='action.php?kisi=$id' onclick='return hs.htmlExpand(this, { objectType: &#39;iframe&#39; })'>$ad $soyad</a>";?></td>

當鏈接被點擊其他用戶無法點擊(數據庫不能改變)

相關問題