"Интернет решения от доктора Боба" - читать интересную книгу автора (Swart Bob)

2.2.10. Результаты запроса

Теперь посмотрим на последнюю часть CGI приложения: часть, в которой генерируется HTML код. Здесь я использую другое свойство расширенного HTML, именованные таблицы, что бы вывод выглядел красивее. Для каждой записи, у которой счетчик более единицы, я выводу счетчик, название, автора, издательство, ISBN, уровень, техническое содержание, качество книги, стоимость и общее значение. Я также включаю ссылку из названия на другое место, где находится более подробное описание. С помощью этого великолепного свойства динамических HTML страниц: вы даже можете включать ссылки на статические страницы, так как результат запроса, часто стартовая точка для прыжка в другое место!

writeln('lt;HRgt;');

writeln('lt;Pgt;');

writeln('lt;H3gt;The following books have been found for you:lt;/h3gt;');

writeln('lt;TABLE BORDERgt;');

writeln('lt;TRgt;');

writeln('lt;THgt;lt;Bgt;Hitslt;/Bgt;lt;/THgt;');

writeln('lt;THgt;lt;Bgt;Titlelt;/Bgt;lt;/THgt;');

writeln('lt;THgt;lt;Bgt;Authorlt;/Bgt;lt;/THgt;');

writeln('lt;THgt;lt;Bgt;Publisherlt;/Bgt;lt;/THgt;');

writeln('lt;THgt;lt;Bgt;ISBNlt;/Bgt;lt;/THgt;');

writeln('lt;THgt;lt;Bgt;Levellt;/Bgt;lt;/THgt;');

writeln('lt;THgt;Conlt;/THgt;');

writeln('lt;THgt;Wrilt;/THgt;');

writeln('lt;THgt;Vallt;/THgt;');

writeln('lt;THgt;lt;Bgt;Totlt;/Bgt;lt;/THgt;');

writeln('lt;/TRgt;');

После того как заголовок написан, самое время выводить сами записи. Я не хочу сортировать их по рейтингу от 5 до 1, так что я просто иду по списку книг и печатаю каждую со своим рейтингом. Этот путь, потому что я знаю, что книги уже отсортированы по рейтингу в основной базе delbooks.db (которая отсортирована по уровню и рейтингу). Обычно книги в верху списка уже лучший ответ на заданный вопрос.

  if DataRec.Delphi2 then

  begin

    for Hits := 5 downto 1 do

    begin

      for i:=1 to Books32 do if Result32[i] = Hits then

      begin

        writeln('lt;TRgt;');

        writeln('lt;TDgt;',Roman[Hits],'lt;/TDgt;');

        writeln('lt;TDgt;lt;A HREF="',root32,Book32[i].HREF,'"gt;',Book32[i].Title,'lt;/Agt;lt;/TDgt;');

        writeln('lt;TDgt;',Book32[i].Author,'lt;/TDgt;');

        writeln('lt;TDgt;',Book32[i].Publisher,'lt;/TDgt;');

        writeln('lt;TDgt;',Book32[i].ISBN,'lt;/TDgt;');

        writeln('lt;TDgt;',Level[Book32[i].Level],'lt;/TDgt;');

        writeln('lt;TDgt;',Book32[i].TechnicalContentsQuality,'lt;/TDgt;');

        writeln('lt;TDgt;',Book32[i].QualityOfWriting,'lt;/TDgt;');

        writeln('lt;TDgt;',Book32[i].ValueForMoney,'lt;/TDgt;');

        writeln('lt;TDgt;lt;Bgt;',Book32[i].OverallAssessment,'lt;/Bgt;lt;/TDgt;');

        writeln('lt;/TRgt;')

      end

    end;

    if DataRec.Delphi1 then writeln('lt;TRgt;lt;/TRgt;')

  end;


  if DataRec.Delphi1 then

  begin

    for Hits := 5 downto 1 do

    begin

      for i:=1 to Books16 do if Result16[i] = Hits then

      begin

        writeln('lt;TRgt;');

        writeln('lt;TDgt;',Roman[Hits],'lt;/TDgt;');

        writeln('lt;TDgt;lt;A HREF="',root16,Book16[i].HREF,'"gt;',Book16[i].Title,'lt;/Agt;lt;/TDgt;');

        writeln('lt;TDgt;',Book16[i].Author,'lt;/TDgt;');

        writeln('lt;TDgt;',Book16[i].Publisher,'lt;/TDgt;');

        writeln('lt;TDgt;',Book16[i].ISBN,'lt;/TDgt;');

        writeln('lt;TDgt;',Level[Book16[i].Level],'lt;/TDgt;');

        writeln('lt;TDgt;',Book16[i].TechnicalContentsQuality,'lt;/TDgt;');

        writeln('lt;TDgt;',Book16[i].QualityOfWriting,'lt;/TDgt;');

        writeln('lt;TDgt;',Book16[i].ValueForMoney,'lt;/TDgt;');

        writeln('lt;TDgt;lt;Bgt;',Book16[i].OverallAssessment,'lt;/Bgt;lt;/TDgt;');

        writeln('lt;/TRgt;')

      end

    end

  end;


  writeln('lt;/TABLEgt;');

  writeln('lt;HRgt;');

  writeln('lt;A HREF="http://www.drbob42.com"gt;Dr.Bob''s Delphi Cliniclt;/Agt;');

  writeln('lt;/BODYgt;');

  writeln('lt;/HTMLgt;');

  writeln;

  Free

end