2012-11-05 62 views
0

我正在尋找一個PHP頁面來檢索基於從下拉列表中的選擇數據,然後顯示基於該選擇的結果。我甚至不知道從哪裏開始,除了我與數據庫的連接。我也知道,我必須有一個查詢語句,就像我會在SQL,在這裏就是一個點點:PHP和SQL Server Express檢索並顯示數據

$sql = "SELECT ForteID, Disposition, appNumber, Finance_Num, Num_Payments, ACH_CC, Notes, Date 
FROM cslogs.dbo.Logs 
WHERE ForteID = 'bs1441'"; 

的bs1441只是一個,這將是在下降一個選項的例子下拉列表。我不知道我會放在那裏,它會自動從列表中放入。

感謝您的幫助提前。對不起,如果沒有足夠的信息繼續下去,但不知道此時甚至需要什麼。

編輯:

這是我到目前爲止有:

<form method="get" action="getlog.php"> 

<table width="300" border="0"> 
<tr> 
<td> Forte ID:</td> 
<td><select id="ForteID" name="ForteID">      
       <option value="nc4682">nc4682</option> 
       <option value="bs1441">bs1441</option> 
       <option value="sp3212">sp3212</option>     
    </select></td> 
</tr> 
</table> 

<input type="submit" name="getLog" value="Get Log"> 
</form> 
</head> 

<body> 
</body> 
</html> 
<?php 
$serverName = 'SRB-Nick_Desktop\SQLEXPRESS'; 
$connectionInfo = array('Database'=>'cslogs', 'UID'=>'cslogslogin', 'PWD'=>'123456'); 
$connection = sqlsrv_connect($serverName, $connectionInfo); 

$result = sqlsrv_query($connection, 
       'SELECT ForteID, Disposition, appNumber, Finance_Num, Num_Payments, ACH_CC, Notes, Date 
       FROM Logs 
       WHERE (ForteID = $ForteID)', 
        array($ForteID)); 

while($row = sqlsrv_fetch_array($result)) 
{ 
echo($row['ForteID'] . ', '. 
    $row['Disposition'] . ', '. 
    $row['appNumber'] . ', '. 
    $row['Finance_Num'] . ', '. 
    $row['Num_Payments'] . ', '. 
    $row['ACH_CC'] . ', '. 
    $row['Notes'] . ', '. 
    $row['Date']); 
} 
sqlsrv_close($connection); 
?> 

然後,當我看網頁,它拋出這個錯誤:

解析錯誤:語法錯誤,意外T_STRING C:\ wamp \ www \ cslogs \ getlog.php on line 46

Line 46 is this line:

echo($row['ForteID'] . ', '. 

讓我知道如果這有幫助!

+0

您應該閱讀[有關MSSQL在PHP中的一些文檔](http://ca2.php.net/manual/en/book.mssql.php)。 – Sammitch

+0

請勿使用sqlsrv_函數。它們不僅僅存在於PHP發行版中,它們將*只有在特定配置的SQL服務器與PHP運行在同一臺機器上時才起作用。 – Sammitch

回答

2

這裏有幾個步驟: 首先,您需要提交表單,其中包含選擇。我不打算在此處完成表單提交,但請仔細研究。

一旦您提交表單,您將需要獲取下拉列表的值並將其分配給一個變量。

$value= $_POST['value']; 

注意:這是一個基本的例子,所以我沒有添加正則表達式或類似的東西。

一旦你有你的變量($值),那麼你可以把它放在你的SQL

$sql = mssql_query($dbc,"SELECT ForteID, Disposition, appNumber, Finance_Num, Num_Payments, ACH_CC, Notes, Date 
FROM cslogs.dbo.Logs 
WHERE ForteID = '$value'") or die("Query Error " . mssql_get_last_message()); 

所以在這裏,我們正在處理的查詢。 $ dbc是我選擇代表我的數據庫連接的變量,如果查詢是有效的,「或死」部分會讓我知道。

一旦你有一個工作查詢,那麼你可以召喚數據被拉入一個數組:

while ($row = mssql_fetch_array($sql)) { 

然後你需要查詢的結果分配給一個變量。

$result1 = $row["RESULT1"]; 
$result2 = $row["RESULT2"]; 

大寫單詞是sql表中列的標題。將它們分配給變量後,只要它們在while循環內,就可以執行任何想要的操作。

$value= $_POST['value']; 

$sql = mssql_query($dbc,"SELECT ForteID, Disposition, appNumber, Finance_Num, Num_Payments, ACH_CC, Notes, Date 
FROM cslogs.dbo.Logs 
WHERE ForteID = '$value'") or die("Query Error " . mssql_get_last_message()); 

while ($row = mssql_fetch_array($sql)) { 
    $result1 = $row["RESULT1"]; 
    $result2 = $row["RESULT2"]; 

    echo $result1; 
    echo $result2; 
} 
+0

很好的答案,除非他不使用mySQL。他正在使用MSSQL。 – Sammitch

+0

謝謝Sammitch回顧他現在看到的問題。但是,糾正我,如果我錯了,它應該非常相似。只需用mysqli替換mssql?我不使用mssql,但我只是檢查PHP和語法看起來一樣?我想這裏的真正目標是讓他走上正確的思路。 – Alex

+0

理論上,是的。但是,實際上,在MS沙箱(如.NET)之外使用MSSQL並不像它在邏輯上應該那樣容易。 – Sammitch

相關問題