2012-08-08 45 views
2

我使用這個選擇爲什麼sqlsrv_fetch_array好好嘗試一下得到了選擇查詢的第一行

$sql1=" SELECT pole FROM Table1 WHERE dva='d'"; 

,它應該返回所有的元素從表中(因爲在該領域「DVA」他們都有「D」),並使用此功能來做到這一點

while($row = sqlsrv_fetch_array($st)) { 
// echo $row[0]."<br />"; 
print_r($row); 
} 

這裏是結果我得到的,它從第二行開始等等...

Array ( 
    [0] => testxz2 
    [pole] => testxz2 
) 
Array ( 
    [0] => some data 
    [pole] => some data 
) 
Array ( 
    [0] => some data 
    [pole] => some data 
) 

之前,我嘗試這樣做,這引起了我的行數1,我從上面代碼得到了其他行,

while($pole=sqlsrv_get_field($st,0)){echo $pole;} 
+0

你嘗試在sql server客戶端運行這個select嗎? – Tomer 2012-08-08 09:32:03

+2

對不起,不懂如何在sql server客戶端運行? – Tony 2012-08-08 09:32:49

+1

通常,數據庫具有可以安裝在您的機器上的本地客戶端,您可以使用它在數據庫上運行查詢而無需編寫代碼。像MySql和phpmyadmin。你可以試試這個:http://www.dbvis.com/,或者這個:http://www.microsoft.com/sqlserver/en/us/editions/2012-editions/express.aspx – Tomer 2012-08-08 09:37:05

回答

-1

ü可以把整個代碼之前獲取調用

前只需編輯部分:

if(sqlsrv_fetch($st) === false) { 
    die(print_r(sqlsrv_errors(), true)); 

我覺得這裏是因爲你獲取的第一要素和第二,而u使用來獲取所有行缺少第一個,因爲已經取...嘗試之前,使用您的while循環錯誤第一次取..

+1

$ sql1 =「從表1選擇極點WHERE dva ='d'」; $ st = sqlsrv_query($ conn,$ sql1);如果($ st === false){ die(print_r(sqlsrv_errors(),true)); } \t } // $ te = sqlsrv_fetch($ st);如果(sqlsrv_fetch($ st)=== false){ die(print_r(sqlsrv_errors(),true)); } */ while($ name = sqlsrv_get_field($ st,0)){echo $ name;} – Tony 2012-08-08 09:50:59

相關問題