powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вызов Stored PROCEDURE
4 сообщений из 4, страница 1 из 1
Вызов Stored PROCEDURE
    #37746490
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!. Если я не правильно поставил названия вопроса сильно не ругайте мне!
Код, который я написал написано в JavaScript'е.
JavaScript Функция
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
    var dataGet;
    var dataSend = "airfrom='SEOUL'&airto='Yuzhny'";
    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open('POST','http://ems-falcon/getflights.php',false);
    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    xmlhttp.onreadystatechange =function(){
	  if ( xmlhttp.readyState == 4 )   {
          if ( xmlhttp.status == 200 )   {
                	dataGet=eval( "(" + xmlhttp.responseText + ")" );
  		  }
		else alert( "There was a problem with the URL." );
        http_request = null;
       }
    }; 
	xmlhttp.send(dataSend);
   return dataGet;
}



код PHP getflights.php
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?php 
//$entry = array();
$entry = array ("fliht" => array (),"Air_from"  => array (),"Air_fromCod"  => array (),"Air_to"  => array (),"Air_toCod"  => array ());
if (isset($_POST['airfrom']) && isset($_POST['airto'])){
     include ("db.php");
     $tsql = "DECLARE @rn_value int EXEC	@rn_value = getflightsTable @airfrom = ".$_POST['airfrom'].",@airto = ".$_POST['airto']." SELECT 'Return Value' = @rn_value";
   	 $stmt = sqlsrv_query($conn,$tsql);
	if( $stmt === false) {
       echo "Error in query preparation/execution.\n";   die( print_r( sqlsrv_errors(), true));
    }
	while($row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC)){
	 	 $entry["fliht"]=$row['fliht'];
		 $entry["Air_from"] =$row['Air_from'];
		 $entry["Air_fromCod"] =$row['Air_fromCod'];
		 $entry["Air_to"] =$row['Air_to'];
		 $entry["Air_toCod"] =$row['Air_toCod'];
		 
	}
	sqlsrv_free_stmt( $stmt);
    sqlsrv_close( $conn);
  }
else {
 $entry["fliht"] = "Ошибка";
}
echo json_encode($entry);
?>



SQL процедура
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ALTER PROCEDURE [dbo].[getflightsTable]
	@airfrom nvarchar(50),
        @airto nvarchar(50)
AS
BEGIN
     SELECT     flight.ID, flight.flight, airports.[Airport name] AS Air_from, airports.[Airport Code] AS Air_fromCod, airports_1.[Airport name] AS Air_to, airports_1.[Airport Code] AS Air_toCod
     FROM         flight INNER JOIN
                      airports ON flight.air_from_id = airports.ID INNER JOIN
                      airports AS airports_1 ON flight.air_to_id = airports_1.ID
     WHERE     (airports.[Airport name] = @airfrom) AND (airports_1.[Airport name] = @airto)
END


эта процедура должна отпечатывать такая таблица:
idflight Air_from Air_fromCod Air_to Air_toCod196ke953SEOULSELYuzhnyTAS292oz573SEOULSELYuzhnyTAS

Здесь getflights.php дает ошибка т.е. этот кусок выполняется:
Код: php
1.
2.
if( $stmt === false) {
       echo "Error in query preparation/execution.\n";   die( print_r( sqlsrv_errors(), true));


результат этого ошибку приложу.
Заранее спасибо тем, кто отвечает!
...
Рейтинг: 0 / 0
Вызов Stored PROCEDURE
    #37746671
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Судя по сообщению - ошибка в синтаксисе запроса.
Код: php
1.
echo $tsql;
...
Рейтинг: 0 / 0
Вызов Stored PROCEDURE
    #37746704
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все исправил! Код работает!
Еще вопрос:
Как можно отправит двухмерный массив по JSon в браузеру?
посмотрите getflights.php
...
Рейтинг: 0 / 0
Вызов Stored PROCEDURE
    #37746723
Alimkulov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тоже решал, оказывается все правильно. Только обработка Json данных написал так:
Код: javascript
1.
2.
3.
4.
5.
6.
for (obj in dataGet)
	{
		for (j=0; j<dataGet[obj].length; j++){
			alert(dataGet[obj][j]);
		}
	}


Всем спасибо!
Тема можно закрыт.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вызов Stored PROCEDURE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]