Интернет-решения от доктора Боба

       

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


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

writeln('<HR>');

writeln('<P>');

writeln('<H3>The following books have been found for

you:</H3>');

writeln('<TABLE BORDER>');

writeln('<TR>');

writeln('<TH><B>Hits</B></TH>');

writeln('<TH><B>Title</B></TH>');

writeln('<TH><B>Author</B></TH>');

writeln('<TH><B>Publisher</B></TH>');

writeln('<TH><B>ISBN</B></TH>');

writeln('<TH><B>Level</B></TH>');

writeln('<TH>Con</TH>');

writeln('<TH>Wri</TH>');

writeln('<TH>Val</TH>');



writeln('<TH><B>Tot</B></TH>');

writeln('</TR>');

После того как заголовок написан, самое время выводить сами записи. Я не хочу сортировать их по рейтингу от 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('<TR>');

        writeln('<TD>',Roman[Hits],'</TD>');


        writeln('<TD><A HREF="',root32,Book32[i].HREF,'">',Book32[i].Title,'</A></TD>');

        writeln('<TD>',Book32[i].Author,'</TD>');

        writeln('<TD>',Book32[i].Publisher,'</TD>');

        writeln('<TD>',Book32[i].ISBN,'</TD>');

        writeln('<TD>',Level[Book32[i].Level],'</TD>');

        writeln('<TD>',Book32[i].TechnicalContentsQuality,'</TD>');

        writeln('<TD>',Book32[i].QualityOfWriting,'</TD>');

        writeln('<TD>',Book32[i].ValueForMoney,'</TD>');

        writeln('<TD><B>',Book32[i].OverallAssessment,'</B></TD>');

        writeln('</TR>')

      end

    end;

    if DataRec.Delphi1 then writeln('<TR></TR>')

  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('<TR>');

        writeln('<TD>',Roman[Hits],'</TD>');

        writeln('<TD><A HREF="',root16,Book16[i].HREF,'">',Book16[i].Title,'</A></TD>');

        writeln('<TD>',Book16[i].Author,'</TD>');

        writeln('<TD>',Book16[i].Publisher,'</TD>');

        writeln('<TD>',Book16[i].ISBN,'</TD>');

        writeln('<TD>',Level[Book16[i].Level],'</TD>');

        writeln('<TD>',Book16[i].TechnicalContentsQuality,'</TD>');

        writeln('<TD>',Book16[i].QualityOfWriting,'</TD>');

        writeln('<TD>',Book16[i].ValueForMoney,'</TD>');

        writeln('<TD><B>',Book16[i].OverallAssessment,'</B></TD>');

        writeln('</TR>')

      end

    end

  end;

  writeln('</TABLE>');

  writeln('<HR>');

  writeln('<A HREF="http://www.drbob42.com">Dr.Bob'' s Delphi Clinic</A>');

  writeln('</BODY>');

  writeln('</HTML>');

  writeln;

  Free

end


Содержание раздела