2015-09-17 62 views
0

我對PHP很新,我在驗證數據時已經存儲在另一個表中。這個想法很簡單,因爲有人會根據工單輸入一些數據並將其寫入數據庫。如果工單號碼存在於單獨的表格中,數據將只寫入數據庫。PHP驗證數據對另一個表

$sqlv = "Select count (worksorderv) from validationtest where worksorderv = ('".$_POST["worksorder"]."')"; 
$checkwo = sqlsrv_query($conn, $sqlv, array(), array('Scrollable' => 'buffered')); 

if (sqlsrv_fetch_array($checkwo) < 1) { 
    echo "That is not a valid works order.<br />"; 
    }else{ 
$sql = "INSERT INTO main_table (worksorder, part, quantity, date) 
     VALUES ('".$_POST["worksorder"]."','".$_POST["part"]."','".$_POST["quantity"]."',GETDATE())"; 
$res = sqlsrv_query($conn, $sql); 

我試圖創建一個數,因此,如果作品責令其將輸出一個0,否則,它存在於表中不存在,可以被提交到數據庫。

如果我硬編碼一個數字我可以得到它的工作,但我不能使用$ _POST [「worksorder」]這是表單條目工作。

它似乎忽略且不論寫的,如果計數爲0或1

任何幫助,非常感謝所有條目!

回答

1

sqlsrv_fetch_array()返回一個數組,並且使用的是在您的比較結果如下:

if (sqlsrv_fetch_array($checkwo) < 1) { 

你可能要檢查持有的計數結果的實際列:

$sqlv = "Select count(worksorderv) as CNT from validationtest where worksorderv = ('".$_POST["worksorder"]."')"; 
// ... 
$result = sqlsrv_fetch_array($checkwo); 
if ($checkwo['CNT'] < 1) {