2012-11-05 2 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 это всего лишь пример одного варианта, который был бы в капле вниз. Я не уверен, что бы я положил туда, чтобы он автоматически помещался в списке.

Спасибо за помощь заранее. Извините, если не хватает информации для продолжения, но не уверен, что даже понадобится на данный момент.

EDIT:

Это то, что я до сих пор:

<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 на линии 46

линия 46 эта линия:

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

Спасибо, Сэммич, оглядываясь назад на его вопрос, я вижу это сейчас. Но, поправьте меня, если я ошибаюсь, это должно быть очень похоже. Просто замените mysqli на mssql? Я не использую mssql, но я просто проверял php, и синтаксис выглядит одинаково? Я предполагаю, что настоящая цель заключалась в том, чтобы заставить его идти по правильному пути мысли. – Alex

+0

Теоретически, да. Однако на практике использование MSSQL за пределами MS-песочницы, такой как .NET, никогда не бывает таким простым, как это логично. – Sammitch

Смежные вопросы