2016-11-12 66 views
3

我希望任何人都可以幫助解決此問題。在學習PHP和MySQL的過程中,請注意,請耐心等待。我有以下表格:MYSQL-PHP獲取特定單元格(字段)的值並在PHP IF語句中使用它

 
ID whid securitybatch radionumber userbatch status  dateofentry 
1 AAA  123456   1  5555555 Available 11/10/2016 9:20 
2 BBB  123456   7  1234567 Available 11/10/2016 16:50 
3 BBB  123456   6  6666666 Deployed 11/11/2016 7:43 
4 XXX  123456   3  2222222 Deployed 11/11/2016 19:52 
5 XXX  123456   4  1234567 Deployed 11/11/2016 20:03 
6 AAA  123456   6  1111116 Deployed 11/11/2016 21:43 
7 XXX  123456   2  2222222 Deployed 11/11/2016 21:52 

我試着將得到突出顯示的值,並在IF語句使用它,這個問題是我的具體要求。

用戶1234567在表格上有兩個條目,最終還有很多,我想獲取該用戶的最新日期條目的狀態列的值,如果有意義的話,那麼該用戶將被選中。 ..ive一直在努力和研究,但其打我......

$query = "SELECT status FROM radiodata WHERE userbatch='$user' AND MAX(dateofentry)"; 
$result = mysqli_query($dbc, $query);  

所以,我很想得到值「部署」一個字符串,我想用它如下:

if($result === 'Deployed') { 
    echo 'Not returned'; 
} else { 
    echo 'Returned'; 
} 

在此先感謝,我們歡迎任何想法/解決方案。

乾杯

回答

1

在當前表單中的查詢是無效的,並且會導致語法錯誤。

$query = "SELECT status FROM radiodata WHERE userbatch='$user' ORDER BY dateofentry DESC LIMIT 1"; 
$result = mysqli_query($dbc, $query);  

你真的不應該像這樣使用字符串連接,但現在讓我們暫且擱置。此查詢現在將返回單行結果。

做完,你仍然不能比較它部署在方式

$row = mysqli_fetch_array($result); 
if ($row['status'] == 'Deployed') { 

} 
+0

這是完美的,它實際上的偉大工程,使擴大我的理解,你爲什麼在回答使用「狀態」作爲數組的索引,而不是一些像下面的緣故,什麼他們都似乎工作有什麼區別?在任何情況下,非常感謝:) –

+0

至於爲什麼是$行[「狀態」]而不是$行[0],這是因爲我使用fetch_array返回的結果作爲一個關聯數組(在其他語言字典) – e4c5

+0

fetch_row給出一個按數字索引的數組。我從來沒有使用過,因爲使用關聯數組更容易維護。 – e4c5

1

你可以通過你的dateofentry訂購查詢

只是dateofentry DESC LIMIT 1

添加

爲了在您的查詢,並將其」結束將按該欄進行分類,然後LIMIT將只能得到一個結果

1

你可以做如下:

$query = "SELECT status FROM radiodata WHERE userbatch='$user' ORDER BY 
      dateofentry DESC LIMIT 1"; 
$result = mysqli_query($dbc, $query); 

$row = mysqli_fetch_row($result); 

if($row[0] == 'Deployed') { 
    echo 'Not returned'; 
} else { 
    echo 'Returned'; 
} 
+0

非常感謝,這個解決方案也可以。 :) –

相關問題