[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: система заказа и резервирования билетов
vladlen704
Нужно создать указанную в теме систему,но я не знаю с чего начать т.к. являюсь новичком. Подскажите пожалуйста. Буду благодарен любому совету.




Спустя 3 минуты, 8 секунд (21.01.2012 - 00:26) Игорь_Vasinsky написал(а):
если ты новичёк - начни с php.net

если - козырной новичёк - то с создания темы в разделе проектов, с указанием бюджета.

Спустя 11 минут, 19 секунд (21.01.2012 - 00:37) vladlen704 написал(а):
я не козырной новичок. И за проект мне никто не платит.

Спустя 2 минуты, 13 секунд (21.01.2012 - 00:40) Игорь_Vasinsky написал(а):
лан. у тя щас какой сан?

- я не знаю вообще
- я что то знаю, но забыл
- 1 != 2 == true

Спустя 9 минут, 59 секунд (21.01.2012 - 00:50) UnWind написал(а):
Начинать нужно с построения базы данных в любом случае, что бы в дальнейшем её не приходилось "ковырять" через каждые пять минут.
Далее - берешь альбом, тетрадь или что тебе удобно и думаешь о структуре самого приложения, пока что в файлах и что где будет хранится, например.
Цитата

lib/sql/connect.php - подключение к базе
lib/classes/ - хранение классов
lib/classes/check.form.php - проверка форм на ваилдность

И так далее.
Когда все расписал, знаешь что и где нужно разместить - приступаешь к созданию.
И например на доске, ватмане описываешь взаимодействие скриптов (Что бы быстро ориентироваться).
Соотвественно выбираешь, будешь ли ты использовать ООП или процедурное программирование.
Ну и вперед!

Это для новичка. Хотя я не знаю твоего уровня, вдруг ты не знаешь даже регулярных выражений. Тогда я вообще не знаю, как что то ты будешь делать.
Нужно как минимум хоть разок книжку от корки до корки прочитать.

P.S.:> И переменные фильтруй не в конце скрипта, а по пути или заранее обозначь их и используй в файле скажем variables.php в корневой директории скрипта.

Спустя 3 минуты, 20 секунд (21.01.2012 - 00:53) vladlen704 написал(а):
Игорь, второй вариант

Спустя 1 минута, 44 секунды (21.01.2012 - 00:55) sergeiss написал(а):
Цитата (Игорь_Vasinsky @ 21.01.2012 - 00:26)
если - козырной новичёк - то с создания темы в разделе проектов, с указанием бюджета.

Ты не прав... Человек не просит написать за него. А спрашивает, в какую сторону ему идти. И эта сторона не "куда подальше" smile.gif, а где есть нужная ему инфа.

Цитата (Игорь_Vasinsky @ 21.01.2012 - 00:40)
у тя щас какой сан?

Вот это уже более правильный вопрос. Я тоже хотел бы услышать, что человек умеет. Иначе советы могут "повиснуть в воздухе".

Спустя 1 минута, 13 секунд (21.01.2012 - 00:56) vladlen704 написал(а):
UnWind, спасибо. Буду пробовать.

Спустя 1 минута, 25 секунд (21.01.2012 - 00:57) vladlen704 написал(а):
sergeiss, я знаю совсем немного, если не сказать мало. По мере возникновения вопросов буду обращаться. Спасибо за поддержку.

Спустя 25 секунд (21.01.2012 - 00:58) Игорь_Vasinsky написал(а):
UnWind
Цитата
И так далее.
Когда все расписал, знаешь что и где нужно разместить - приступаешь к созданию.
И например на доске, ватмане описываешь взаимодействие скриптов (Что бы быстро ориентироваться).
Соотвественно выбираешь, будешь ли ты использовать ООП или процедурное программирование.

эээ - ты о чём дружище?? какое нафиг ООП ? ты ему ещё предложи на ASP сразу псать.


ТС.. крышанули тебя))

вообщем создаёщь БД

id | tiket | busy
идентификатор | билет | бронь


Спустя 33 секунды (21.01.2012 - 00:58) UnWind написал(а):
vladlen704
Попробуй. Просто если ты новичек, тебе легко запутаться и наши советы тебе не помогут в данный момент. Мы тебе можем сейчас написать кучу для тебя непонятного, ведь мы не знаем что именно тебе нужно.
По этому, делай все поэтапно, понимай сам что ты делаешь, записывай как я уже сказал - что бы потом, ты тыкнул пальцем в непонятное место, пришел - написал нам и мы тебе дали уже то, что тебе действительно нужно.

Спустя 55 секунд (21.01.2012 - 00:59) UnWind написал(а):
Игорь_Vasinsky
Ну я же не знаю чего он у меет)
Вдруг он тут говорит что он новичек, а на самом деле ему нобеля давать надо (Никому не в обиду, просто иронично сказано, для подкрепления мысли)

Спустя 18 секунд (21.01.2012 - 01:00) sergeiss написал(а):
Да, и еще. Что значит "нужно создать"? По работе, по учебе, просто захотелось "поразмять мозги"?

Спустя 2 минуты, 50 секунд (21.01.2012 - 01:02) vladlen704 написал(а):
безусловно поломать мозги, так как интересно и хочу этим заниматься в будущем, а во вторых автомат хочу по веб-программированию =)

Спустя 1 минута, 23 секунды (21.01.2012 - 01:04) Игорь_Vasinsky написал(а):
irbis-team.com
irbis-school.com

вот - начинай.

Спустя 1 минута, 6 секунд (21.01.2012 - 01:05) vladlen704 написал(а):
Игорь, спасибо

Спустя 1 минута, 6 секунд (21.01.2012 - 01:06) UnWind написал(а):
vladlen704
Ну в таком случае, тебе нужно еще проштудировать учебник хорошо.
Не знаю какой у тебя универ/колледж, но например из студентов МГУ и ТГУ знаю единиц которые получили автомат по программированию, особенно за эгзамен.
Вот там бы можно было бы полностью проверить себя на "прочность".
Я бы хотел бы это сделать, и думаю сделаю.

Спустя 45 секунд (21.01.2012 - 01:07) UnWind написал(а):
Цитата
irbis-team.com
irbis-school.com

Могу дополнить книгами Дмитрия Котерова - на мой взгляд очень хорошие самоучители и справочники.

Спустя 1 минута, 10 секунд (21.01.2012 - 01:08) vladlen704 написал(а):
UnWind ,все в наших руках.

Спустя 2 минуты, 32 секунды (21.01.2012 - 01:10) UnWind написал(а):
vladlen704
Согласен, тоже самое могу сказать и тебе.
Жить было бы бессмысленно, если бы не было стремления.
А особенно бессмысленно, когда оно есть, но ты ничего для достижения цели не делаешь.

Спустя 2 месяца, 7 дней, 21 час, 32 минуты, 36 секунд (28.03.2012 - 22:43) vladlen704 написал(а):
Господа, доброго времени суток. Возникла трудность при добавлении данных в таблицу бд MSSQL.

вот код.

<?php
$link = mssql_connect("192.168.0.155,1433","sa","orient12") or die ("Not connected");
mssql_select_db('TicketsOnLine') or die ("The database is missed");
if ($_GET['submit'])
{
$RowID=(string)$_GET['RowID'];
$Name=(string)$_GET['Name'];
}
else
{
echo "<h1>The form does not submited</h1>";
}
$sql = "INSERT INTO Destinations (RowID, Name) VALUES ('RowID', 'Name')";
mssql_query($sql);
mssql_close($link);
?>


что пишет в логи Apache:
[Wed Mar 28 22:10:06 2012] [error] [client 127.0.0.1] PHP Warning: mssql_query() [<a href='function.mssql-query'>function.mssql-query</a>]: message: Conversion failed when converting from a character string to uniqueidentifier. (severity 16) in C:\\apache\\localhost\\www\\file.php on line 41, referer: *********

Я как бы понял что он не может преобразовать string в uniqueidentifier.
Нашел при помощи какой функции можно это преобразование произвести.

функция TSQL под названием convert

хотелось бы узнать:
имеется ли возможность использования этой функции совместно с INSERT
и если она имеется, то покажите бестолковому как.

заранее спасибо


Спустя 6 минут, 54 секунды (28.03.2012 - 22:50) Игорь_Vasinsky написал(а):
Цитата
192.168.0.155,1433

порт через двоеточие
192.168.0.155:1433


Цитата
(string)

не зачем? (int) - полезен, остальное нет.

$query = mysql_query("INSERT INTO `Destinations` (`RowID`, `Name`) VALUES (".(int)mysql_real_escape_string($RowID).", '".mysql_real_escape_string($Name)."')");



в моём журнале почитай про составление SQL запросов и конкатенацию SQL запросов

Спустя 9 минут, 38 секунд (28.03.2012 - 23:00) vladlen704 написал(а):
Игорь, здравствуйте. Спасибо за ответ. Я использую MSSQL.

Спустя 1 минута, 56 секунд (28.03.2012 - 23:02) Игорь_Vasinsky написал(а):
ну поменяй префиксы у функций с my на ms

Спустя 1 минута, 48 секунд (28.03.2012 - 23:03) vladlen704 написал(а):
пробовал:

PHP Fatal error: Call to undefined function mssql_real_escape_string()


Спустя 3 дня, 1 час, 18 минут, 1 секунда (1.04.2012 - 00:21) vladlen704 написал(а):
разобрался

Спустя 21 день, 8 часов, 12 минут, 35 секунд (22.04.2012 - 08:34) mamant написал(а):
по проектированию бд какие книжки посоветуете почитать? про типы связей 1к1 1к многим и т.п.

Спустя 21 день, 10 часов, 56 минут, 50 секунд (13.05.2012 - 19:31) vladlen704 написал(а):
Всем доброго времени суток. Такой ситуация.

Выводится таблица с расписанием. В каждой строке ссылка, перенаправляющая на форму заказа билета. Такой вопрос: как сформировать ссылку, чтобы билет заказывался именно на этот рейс, располагающийся в этой строке? Я так понял что id рейса тут не последнюю роль играет. Но вот додуматься чтото не могу. сижу второй день уже. Помогите пожалуйста =(

Спустя 2 часа, 28 минут, 46 секунд (13.05.2012 - 22:00) vladlen704 написал(а):
Ну как бы разобрался малость

формировать ссылку можно как то так:


echo "<td><a href=buy.php?RowID=".$postrow[$i]['RowID'].">Заказать</a></td>";


код buy.php

<?php

include("bd.php");
$query = "SELECT * FROM RoutesTable WHERE RowID = ".$_GET['RowID']."";
$res = mssql_query($query);
echo"<form>";
echo"</form>";

?>


проблема в том, что Apache пишет в error.log следующее:


PHP Warning: mssql_query() [<a href='function.mssql-query'>function.mssql-query</a>]: message: Incorrect syntax near '='. (severity 15) in C:\\...\\www\\reg\\buy.php on line 5

подскажите пожалуйста что не так?

Спустя 14 минут, 3 секунды (13.05.2012 - 22:14) Игорь_Vasinsky написал(а):
$query = "SELECT * FROM `RoutesTable` WHERE `RowID` = (int)".$_GET['RowID']) or die(mssql_error());


так что говорит?

Спустя 3 минуты, 9 секунд (13.05.2012 - 22:17) Игорь_Vasinsky написал(а):
или если руганётся на mssql_error() - замени на mssql_get_last_message()

Спустя 32 минуты, 4 секунды (13.05.2012 - 22:49) vladlen704 написал(а):
безрезультатно.

Спустя 4 минуты, 53 секунды (13.05.2012 - 22:54) Игорь_Vasinsky написал(а):
блин.. текст ошибки с моим примером покажи... я знаю что безрезультатно)))

Спустя 8 минут, 40 секунд (13.05.2012 - 23:02) vladlen704 написал(а):
PHP Parse error: syntax error, unexpected ')' in C:\\...\\www\\reg\\buy.php on line 4

Спустя 42 секунды (13.05.2012 - 23:03) Игорь_Vasinsky написал(а):
biggrin.gif чёт ты перемудрил. покажи код.

Спустя 5 минут, 55 секунд (13.05.2012 - 23:09) vladlen704 написал(а):
уточните пожалуйста код чего именно

Спустя 7 минут, 26 секунд (13.05.2012 - 23:16) Игорь_Vasinsky написал(а):
этой строки, номер указан в твоей ошибке))

Спустя 2 минуты, 47 секунд (13.05.2012 - 23:19) vladlen704 написал(а):
номер строки соответствует присланному вами запросу

$query = "SELECT * FROM `RoutesTable` WHERE `RowID` = (int)".$_GET['RowID']) or die(mssql_get_last_message());

Спустя 1 минута, 3 секунды (13.05.2012 - 23:20) vladlen704 написал(а):
скобка лишняя чтоли

Спустя 3 минуты, 13 секунд (13.05.2012 - 23:23) vladlen704 написал(а):
после удаления лишней скобки

message: Invalid column name 'int'.

message: Incorrect syntax near '='

все в этом же запросе sad.gif

Спустя 3 минуты, 33 секунды (13.05.2012 - 23:27) Игорь_Vasinsky написал(а):
$query = mssql_query("SELECT * FROM `RoutesTable` WHERE `RowID` = ".(int)$_GET['RowID']) or die(mssql_get_last_message());

Спустя 10 минут, 19 секунд (13.05.2012 - 23:37) vladlen704 написал(а):
вот такая вот ошибка

message: Operand type clash: uniqueidentifier is incompatible with tinyint

просто у меня айдишники GUID ами являются

на какой тип данных поменять нужно int в запросе?

Спустя 1 минута, 7 секунд (13.05.2012 - 23:38) Игорь_Vasinsky написал(а):
вообще убери (int) из запроса

Спустя 3 минуты, 4 секунды (13.05.2012 - 23:41) vladlen704 написал(а):
убрал

message: Incorrect syntax near '='

Спустя 5 минут, 34 секунды (13.05.2012 - 23:47) Игорь_Vasinsky написал(а):
замени ".$_GET['RowID'] на '".$_GET['RowID']."'

Спустя 5 минут, 33 секунды (13.05.2012 - 23:53) vladlen704 написал(а):
заменил

Conversion failed when converting from a character string to uniqueidentifier.

Спустя 1 минута, 53 секунды (13.05.2012 - 23:54) Игорь_Vasinsky написал(а):
не понял))

так. какой тип у ID в таблице и что $_GET ???

Спустя 10 минут, 31 секунда (14.05.2012 - 00:05) vladlen704 написал(а):
тип ID у меня выбран uniqueidentifier.

Я честно совсем запутался.

вот код обработчика формы поиска маршрутов:
 
<?php

$connect = mssql_connect("192.168.0.155,1433","sa","orient12") or die ("Not connected");
mssql_select_db('TicketsOnLine') or die ("Could not select db");

$Name=(string)$_GET['Name'];

$sql = "SELECT (SELECT Name FROM dbo.RoutesTypes WHERE RowID = Type) AS Рейс --Название маршрута
,(SELECT Name FROM dbo.Destinations WHERE Name = 'Самара') AS Откуда --Пункт отправления
,(SELECT Name FROM dbo.Destinations WHERE Name = '
$Name') AS Куда --Пункт назначения
--,(SELECT COUNT([RowID]) FROM [RoutePartInstances] WHERE [RoutePartType] = RoutesTypes.RowID AND [Occuped] = 0) AS FreePlaces --Количество свободных мест на выбранную часть маршрута
,(SELECT SUM(Cost) From RoutesParts WHERE Ordern >= RoutesTypes.OrderA AND Ordern <= RoutesTypes.OrderB AND InstanceID = Type) AS Стоимость --Стоимость билета на выбранную часть маршрута
,(SELECT SUM(TimeInWay) From RoutesParts WHERE Ordern >= RoutesTypes.OrderA AND Ordern <= RoutesTypes.OrderB AND InstanceID = Type) AS Путь --Время в пути на выбранной части маршрута
--Расчёт времени отправления
,(SELECT DATEADD(Minute,
(SELECT
CASE
WHEN RoutesTypes.OrderA > 1 THEN (SELECT SUM(TimeInWay) From RoutesParts WHERE Ordern < RoutesTypes.OrderA AND InstanceID = Type)+10*(SELECT COUNT(RowID) From RoutesParts WHERE Ordern < RoutesTypes.OrderA AND InstanceID = Type)
ELSE 0
END),[DateStart])) AS Отправление
--Расчёт времени прибытия
,(SELECT DATEADD(Minute,
(SELECT SUM(TimeInWay) From RoutesParts WHERE Ordern >= RoutesTypes.OrderA AND Ordern <= RoutesTypes.OrderB AND InstanceID = Type)+10*(SELECT COUNT(RowID) From RoutesParts WHERE Ordern > RoutesTypes.OrderA AND Ordern <= RoutesTypes.OrderB AND InstanceID = Type),
(SELECT DATEADD(Minute,
(SELECT
CASE
WHEN RoutesTypes.OrderA > 1 THEN (SELECT SUM(TimeInWay) From RoutesParts WHERE Ordern < RoutesTypes.OrderA AND InstanceID = Type)+10*(SELECT COUNT(RowID) From RoutesParts WHERE Ordern < RoutesTypes.OrderA AND InstanceID = Type)
ELSE 0
END),[DateStart])))) AS Прибытие

--,RoutesTypes.OrderA --Порядок выбранной точки отправления в маршруте. Это нам понадобится при покупке билета
--,RoutesTypes.OrderB --Порядок выбранной точки назначания в маршруте. Это нам понадобится при покупке билета
,RoutesTable.[RowID] AS RouteID --Идентификатор рейса из таблицы расписаний. Это нам понадобится при покупке билета
--,RoutesTable.[Type] AS RouteTypeID --Идентификатор типа маршрута из таблицы типов маршрутов. Это нам понадобится при покупке билета

FROM [RoutesTable] AS RoutesTable
INNER JOIN (SELECT RoutesParts_A.[InstanceID],RoutesParts_A.[TimeA],RoutesParts_B.TimeB,RoutesParts_A.RowID,RoutesParts_ A.Ordern AS OrderA,RoutesParts_B.Ordern AS OrderB
FROM [RoutesParts] AS RoutesParts_A
INNER JOIN (SELECT [InstanceID],[TimeB],[Ordern] FROM [RoutesParts] WHERE [DestBID] = (SELECT RowID FROM Destinations WHERE Name = '
$Name')) AS RoutesParts_B ON RoutesParts_B.InstanceID = RoutesParts_A.InstanceID
WHERE [DestAID] = (SELECT RowID FROM Destinations WHERE Name = 'Самара'))AS RoutesTypes ON RoutesTable.Type = RoutesTypes.InstanceID"
;

$result = mssql_query($sql);

echo"<form>";
echo"<table align='center' border = 1% width=50% bordercolor=black>";
$first_line = true;
while ($row = mssql_fetch_object ($result))
{
if ($first_line)
{
echo "<tr>";
foreach($row as $id => $value)
echo "<td><b>".htmlspecialchars($id)."</b></td>";
echo "</tr>";
$first_line = false;
}
echo "<tr>";
foreach ($row as $value)
echo "<td>".htmlspecialchars($value)."</td>";
echo "</tr>";

}
echo"</table>";
echo"</form>";


mssql_close($connect);

?>





Спустя 2 минуты, 30 секунд (14.05.2012 - 00:07) Игорь_Vasinsky написал(а):
дам таблицы SQL покажи.. без строк... тока дамп самой таблицы.

Спустя 3 минуты, 45 секунд (14.05.2012 - 00:11) vladlen704 написал(а):
все работает как швейцарские часы. Я заню как сделать чтобы напротив каждой строки выходила ссылка. Но не знаю как ее сформировать таким образом, чтобы заказывался билет именно на маршрут, указанный в строке, напротив которой располагается эта ссылка

Спустя 59 секунд (14.05.2012 - 00:12) vladlen704 написал(а):
под дампом подразумевается копия? если да то какой таблицы

Спустя 3 минуты, 47 секунд (14.05.2012 - 00:16) Игорь_Vasinsky написал(а):
этой таблицы))) к которой запрос... лан забей. пишет что не может ковертировать данные из GET в тип поля ID.... нужно GET привести к тому же типу.

Спустя 2 минуты, 51 секунда (14.05.2012 - 00:19) vladlen704 написал(а):
Я понял что не может конвертировать. А как привести его к такому типу?

Спустя 3 минуты, 11 секунд (14.05.2012 - 00:22) Игорь_Vasinsky написал(а):
я не понял что за тип у тя у ID, SQL синтаксис вроде не должен отличаться у MSSQL и MySQL, но тут я вижу постоянно что то новое.

ты когда таблицу создавал - кукой тип указал для ID?

Спустя 4 минуты, 41 секунда (14.05.2012 - 00:27) vladlen704 написал(а):
там вообще используется TSQL, поэтому синтаксис и отличается. А тип данных
выбирается из выпадающего списка при создании поля. Тип так и называется 'uniqueidentifier' и представляет собой GUID

Спустя 3 минуты, 49 секунд (14.05.2012 - 00:31) Игорь_Vasinsky написал(а):
тебе бы в int его преобразовать... тока сначала сохрани таблицу

http://msdn.microsoft.com/ru-ru/library/ms187942.aspx

Спустя 5 минут, 50 секунд (14.05.2012 - 00:36) vladlen704 написал(а):
бэкап то у меня постоянно делается =). Просто механизм формирования ссылки мне не до конца понятен. Сколько перечитал - толком ничего не понял. Я бы был вам, Игорь, бесконечно признателен если бы вы наставили меня на путь истинный.
Может вы знаете где материала хорошего найти по этой теме или, если есть желание и время, то объяснить на примере.

Спустя 12 минут, 33 секунды (14.05.2012 - 00:49) vladlen704 написал(а):
так первоначально выглядела строка для формирования ссылки:
echo "<a href=forma_redaktirovaniya.php?nomer=".$postrow[$i]['nomer'].">Изменить</a>";


так первоначально выглядел forma_redaktirovaniya.php:
$query=SELECT * FROM zakazy WHERE nomer=".$_GET['nomer'];
$res = mysql_query($query);


когда переделал под себя:
echo "<td><a href=buy.php?RowID=".$postrow[$i]['RowID'].">Заказать</a></td>";  



<?php
include("bd.php");
$query = mssql_query("SELECT * FROM RoutesTable WHERE RowID = '".$_GET['RowID']."'") or die(mssql_get_last_message());
mssql_query($query);
?>


помимо того что ругается на невозможность конвертировать тип данных, еще и ругается на то что переменные не определены, а именно $postrow и $i

я вообще уже не помню где все это нашел. просто не могу понять как это работает и для чего вообще нужны эти переменные

Спустя 10 минут, 52 секунды (14.05.2012 - 01:00) Игорь_Vasinsky написал(а):
)) про переменные я не вкурсе где и как они формируются. надо решить вопрос с проблемой конвертирования.. потом плязать.

выше запроса сделай так

$_GET['RowID'] = isset($_GET['RowID']) ? $_GET['RowID'] : 1;


и попробуй.

Спустя 2 минуты, 24 секунды (14.05.2012 - 01:02) vladlen704 написал(а):
message: Conversion failed when converting from a character string to uniqueidentifier

а что вышеуказанная строка делает?

Спустя 5 минут, 31 секунда (14.05.2012 - 01:08) Игорь_Vasinsky написал(а):
в случае отсутствия GET - заменяет её на 1

....

единственный вариант который могу предложить - заменит GIUD на INT

Спустя 10 минут, 40 секунд (14.05.2012 - 01:18) Игорь_Vasinsky написал(а):
но есть недостаток.. нужно придумать как уникализировать этот ID т.к. за этим следил GIUD

Спустя 17 часов, 49 минут, 26 секунд (14.05.2012 - 19:08) vladlen704 написал(а):
Базу я переделал. Все теперь int-ом.

Избавился от непонятных переменных. Теперь это выглядит так:

//60 строка
echo "<td><a href=buy.php?RowID=".$row['RowID'].">Заказать</a></td>";


Теперь ругается следующим образом:
PHP Notice: Undefined index: RowID in C:\\apache\\localhost\\www\\reg\\search.php on line 60


Спустя 53 минуты, 57 секунд (14.05.2012 - 20:02) Игорь_Vasinsky написал(а):
покажи саму выборку из БД, откуда формируется $row['RowID']

Спустя 26 минут, 21 секунда (14.05.2012 - 20:28) vladlen704 написал(а):
эээ... ее получается что нет. Если я конечно правильно вас понял

Спустя 5 минут, 25 секунд (14.05.2012 - 20:34) Игорь_Vasinsky написал(а):
ну покажи кусок кода выборки из БД то.. ща уйду.

Спустя 10 минут, 12 секунд (14.05.2012 - 20:44) vladlen704 написал(а):
так я же вчера постил.


$sql = "SELECT (SELECT Name FROM dbo.RoutesTypes WHERE RowID = Type) AS Рейс --Название маршрута
,(SELECT Name FROM dbo.Destinations WHERE Name = 'Самара') AS Откуда --Пункт отправления
,(SELECT Name FROM dbo.Destinations WHERE Name = '
$Name') AS Куда --Пункт назначения
--,(SELECT COUNT([RowID]) FROM [RoutePartInstances] WHERE [RoutePartType] = RoutesTypes.RowID AND [Occuped] = 0) AS FreePlaces --Количество свободных мест на выбранную часть маршрута
,(SELECT SUM(Cost) From RoutesParts WHERE Ordern >= RoutesTypes.OrderA AND Ordern <= RoutesTypes.OrderB AND InstanceID = Type) AS Стоимость --Стоимость билета на выбранную часть маршрута
,(SELECT SUM(TimeInWay) From RoutesParts WHERE Ordern >= RoutesTypes.OrderA AND Ordern <= RoutesTypes.OrderB AND InstanceID = Type) AS Путь --Время в пути на выбранной части маршрута
--Расчёт времени отправления
,(SELECT DATEADD(Minute,
(SELECT
CASE
WHEN RoutesTypes.OrderA > 1 THEN (SELECT SUM(TimeInWay) From RoutesParts WHERE Ordern < RoutesTypes.OrderA AND InstanceID = Type)+10*(SELECT COUNT(RowID) From RoutesParts WHERE Ordern < RoutesTypes.OrderA AND InstanceID = Type)
ELSE 0
END),[DateStart])) AS Отправление
--Расчёт времени прибытия
,(SELECT DATEADD(Minute,
(SELECT SUM(TimeInWay) From RoutesParts WHERE Ordern >= RoutesTypes.OrderA AND Ordern <= RoutesTypes.OrderB AND InstanceID = Type)+10*(SELECT COUNT(RowID) From RoutesParts WHERE Ordern > RoutesTypes.OrderA AND Ordern <= RoutesTypes.OrderB AND InstanceID = Type),
(SELECT DATEADD(Minute,
(SELECT
CASE
WHEN RoutesTypes.OrderA > 1 THEN (SELECT SUM(TimeInWay) From RoutesParts WHERE Ordern < RoutesTypes.OrderA AND InstanceID = Type)+10*(SELECT COUNT(RowID) From RoutesParts WHERE Ordern < RoutesTypes.OrderA AND InstanceID = Type)
ELSE 0
END),[DateStart])))) AS Прибытие

--,RoutesTypes.OrderA --Порядок выбранной точки отправления в маршруте. Это нам понадобится при покупке билета
--,RoutesTypes.OrderB --Порядок выбранной точки назначания в маршруте. Это нам понадобится при покупке билета
--,RoutesTable.[RowID] AS RouteID --Идентификатор рейса из таблицы расписаний. Это нам понадобится при покупке билета
--,RoutesTable.[Type] AS RouteTypeID --Идентификатор типа маршрута из таблицы типов маршрутов. Это нам понадобится при покупке билета

FROM [RoutesTable] AS RoutesTable
INNER JOIN (SELECT RoutesParts_A.[InstanceID],RoutesParts_A.[TimeA],RoutesParts_B.TimeB,RoutesParts_A.RowID,RoutesParts_ A.Ordern AS OrderA,RoutesParts_B.Ordern AS OrderB
FROM [RoutesParts] AS RoutesParts_A
INNER JOIN (SELECT [InstanceID],[TimeB],[Ordern] FROM [RoutesParts] WHERE [DestBID] = (SELECT RowID FROM Destinations WHERE Name = '
$Name')) AS RoutesParts_B ON RoutesParts_B.InstanceID = RoutesParts_A.InstanceID
WHERE [DestAID] = (SELECT RowID FROM Destinations WHERE Name = 'Самара'))AS RoutesTypes ON RoutesTable.Type = RoutesTypes.InstanceID"
;

$result = mssql_query($sql);

Спустя 4 минуты, 33 секунды (14.05.2012 - 20:48) Игорь_Vasinsky написал(а):
:D э как тебя))))
чёт тут я не вижу что ты айдиншник дёргашь)))

вообщем допиши после выборки

echo '<pre>' . print_r($row, 1) . '</pre>';



Спустя 6 минут, 50 секунд (14.05.2012 - 20:55) vladlen704 написал(а):
А разве ,RoutesTable.[RowID] AS RouteID не есть вытаскивание айдишника?


Спустя 15 минут, 12 секунд (14.05.2012 - 21:10) Игорь_Vasinsky написал(а):
ты же алиас присваиваешь RouteID

говорю же - сделай

Цитата
echo '<pre>' . print_r($row, 1) . '</pre>';


увидишь ключи массива

тока после while() делай

Спустя 11 минут, 19 секунд (14.05.2012 - 21:22) vladlen704 написал(а):
совсем торможу. Как Тесла сплю по 4 часа в сутки =(

Array
(
[Рейс] => СМР-МСК
[Откуда] => Самара
[Куда] => Москва
[Стоимость] => 1700
[Путь] => 1200
[Отправление] => 3/oct/2012 9:30
[Прибытие] => 4/oct/2012 6:00
[RouteID] => 1
)
Array
(
[Рейс] => СМР-МСК
[Откуда] => Самара
[Куда] => Москва
[Стоимость] => 1700
[Путь] => 1200
[Отправление] => 3/nov/2012 9:30
[Прибытие] => 4/nov/2012 6:00
[RouteID] => 2
)

Спустя 4 минуты, 37 секунд (14.05.2012 - 21:26) vladlen704 написал(а):
Поменял RowID на RouteID. Ошибки сыпаться перестали. Вообще. Ссылка формируется нормально

http://localhost/reg/buy.php?RowID=1

или

http://localhost/reg/buy.php?RowID=2

в зависимости от выбранной строки в расписании

Спустя 2 минуты, 45 секунд (14.05.2012 - 21:29) Игорь_Vasinsky написал(а):
ну вот блин.

я не рискую, не использую кириллицу в ключах массивов.

Спустя 1 минута, 21 секунда (14.05.2012 - 21:30) vladlen704 написал(а):
Игорь, можно ли сказать что заработало?

Спустя 2 часа, 20 минут, 47 секунд (14.05.2012 - 23:51) Игорь_Vasinsky написал(а):
ну ссылки же формируются. мы это побороли))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.