Войти Регистрация |
Готовые примеры скриптовНаши программисты подготовили для вас заготовки скриптов, чтобы упростить работу ваших программистов. Вам остается только поправить SQL запрос под структуру вашей базы данных. Если у вас нет программиста, либо он не может подготовить скрипт - пожалуйста, воспользуйтесь помощью наших программистов. Бесплатно!Выберите предпочтительный язык программирования:
Версия на PHP4 / PHP5
Отправляем запрос методом GET Например http://www.mysite.com/xml.php?search=MAX232 Загрузить архив с файлом скрипта и файлом структуры SQL базы <?php $mysql_host = 'localhost'; //Database Host (обычно localhost) $mysql_base = 'store'; //Dababase Name $mysql_user = 'store_user'; //Dababase Username $mysql_password = 'qwerty'; //Dababase Password $search = trim(stripslashes($_GET['search'])); if (strlen($search) < 4) { //Проверяем длину строки (должно быть минимум 4 символа) echo '<data />'; exit(); } //Защищаем спецаильные символы MySQL базы даных (слеши, апострофы и знак процента) $search = @mysql_real_escape_string($search); @mysql_connect($mysql_host, $mysql_user, $mysql_password) or die('<data />'); @mysql_select_db($mysql_base); ob_start(); //Буферизируе вывод, для максимальной скорости работы //SQL запрос ниже надо отредактировать в соответствии со структурой вашей базы данных //Если вы хотите искать по части строки, то требуется добавить дополнительный символ % //в '%".$search."%', но для больших баз данных этот параметр создаст сильную нагрузку //на сервер и увеличит время отклика. Эксперементируйте! $sql = "SELECT * FROM pricelist WHERE part LIKE '".$search."%' ORDER BY part LIMIT 20"; $result = @mysql_query($sql); if (@mysql_num_rows($result) > 0) { //Ура! Нашли что-то! echo '<data>'; while ($row = @mysql_fetch_array($result)) { echo '<line>'; //Конвертируем строку по XML стандарту foreach ($row as $i=>$j) $row[$i] = str_replace(array(' ', '<', '>'), array(' ' ,'<', '>'), trim($j)); echo '<part>'.$row['part'].'</part>'; //Part Number (обязательное поле) //Необяхательные поля, надо выводить в соответствии с документацией и //наличием информации в вашей БД. Для экономии трафика проверяйте параметр на пустоту echo (!empty($row['mfr'])) ? '<mfr>'.$row['mfr'].'</mfr>' : ''; //Производитель echo (!empty($row['note'])) ? '<note>'.$row['note'].'</note>' : ''; //Описание echo (!empty($row['stock'])) ? '<stock>'.$row['stock'].'</stock>' : ''; //Склад //Цена. Должно быть число 0.0000, без пробелов и символов валюты if (!empty($row['price']) && $row['price'] > 0)) echo '<p1>'.round($row['price'], 4).'</p1>' : ''; //Если вы используете только одну валюту, выводим фиксированный параметр echo '<cur>euro</cur>'; echo '</line>'; } echo '</data>'; } else { //Упс! Ничего не нашли... echo '<data />'; } ob_end_flush(); //Сбрасываем буфер вывода @mysql_close(); //Закрываем соединение с БД ?>
Версия на Perl
Отправляем запрос методом GET. Например http://www.mysite.com/cgi-bin/xml.pl?search=MAX232 Загрузить архив с файлом скрипта и файлом структуры SQL базы #!/usr/bin/perl use strict; use CGI; use DBI; my $mysql_host = 'localhost'; #Database Host my $mysql_base = 'store'; #Database Name my $mysql_user = 'store_user'; #Database Username my $mysql_password = 'qwerty'; #Database Password my $q = new CGI; my $ret = ''; eval { my $dbh = DBI->connect("dbi:mysql:$mysql_base:$mysql_host", $mysql_user, $mysql_password) or die $DBI::errstr; my $search = ($q->param('search') or $ARGV[0]); unless (length $search < 4) { # SQL запрос ниже надо отредактировать в соответствии со структурой вашей базы данных # Если вы хотите искать по части строки, то требуется добавить дополнительный символ % # в '%".$search."%', но для больших баз данных этот параметр создаст сильную нагрузку # на сервер и увеличит время отклика. Экспериментируйте! my $list = $dbh->selectall_arrayref( "SELECT * FROM pricelist WHERE part LIKE ? ORDER BY part LIMIT 20", { Slice => {} }, $search . '%' ) or die $DBI::errstr; if (defined $list && @$list) { # Ура! Мы нашли что-то! $ret .= '<data>'; while (my $row = shift @$list) { $ret .= '<line>'; # Конвертируем специальны символы по стандарту XML foreach my $i (keys %$row) { $row->{$i} =~ s/\s{2,}/ /g; $row->{$i} =~ s/</</g; $row->{$i} =~ s/>/>/g; } $ret .= '<part>' . $row->{'part'} . '</part>'; # Part Name (обязательное поле) # Выводим строку результатов for (qw /mfr note stock/) { $ret .= "<$_>" . $row->{$_} . "</$_>" if $row->{}; } # Цена, должно быть число формата 0.0000, без пробелов и символа валюту $ret .= '<p1>' . sprintf ('%.4f', $row->{'price'}) . '</p1>' if $row->{'price'} > 0; # Если используется одна валюту - выводим фиксированное значение $ret .= '<cur>euro</cur>'; $ret .= '</line>'; } $ret .= '</data>'; } } else { $ret = '<data />'; } }; if ($@) { warn $@; print $q->header('text/xml', '500 Internal Server Error'), "<data />"; } else { print $q->header('text/xml', '200 OK'), $ret; }
Версия на ASP
Отправляем запрос методом GET. Например http://www.mysite.com/xml.asp?search=MAX232 Загрузить архив с файлом скрипта и файлом структуры SQL базы Для использования БД MySQL под Windows ASP вам надо установить MySQL ODBC Driver. Вы можете загрузить его с сайта MySQL. Если вы размещаете свой сайт на одном из популярных хостингов, то MyODBC driver уже должен быть установлен. <% on error resume next dim SearchStr 'Получаем запрашиваемую строку методом GET method. Если хотите использовать POST измените на Request.Form set SearchStr = trim(Request.QueryString("search")); 'Проверяем длину строки (должно быть минимум 4 символа) if len(SearchStr) < 4 then response.write "<data />" Response.End end if dim DBhost dim DBname dim DBusername dim DBpassword 'MySQL Database Host (обычно localhost) DBhost = "localhost" 'MySQL Database Name DBname = "mydatabase" 'MySQL Username DBusername = "guest" 'MySQL Password DBpassword = "qwerty" dim ADOConnection dim ADOResults set ADOConnection = Server.CreateObject("ADODB.Connection") set ADOResults = Server.CreateObject("ADODB.Recordset") 'Подключаемся к MySQL базе ADOConnection.Open "Driver={mySQL}; Server=" & DBhost & "; Port=3306; Option=0; Socket=; Stmt=; Database=" & DBname & "; Uid=" & DBusername & "; Pwd=" & DBpassword & ";" ADOResults.ActiveConnection = ADOConnection if ADOConnection.errors.count = 0 then 'Отправляем SQL запрос ADOResults.Open "SELECT part, mfr, price, stock, description FROM pricelist WHERE partno LIKE '" & SearchStr & "%' LIMIT 20" if ADOResults.Fields.Count > 0 then response.write "<data>" while not ADOResults.EOF response.write "<line>" 'Part No - обязательное поле response.write "<part>" & ADOResults.fields(0).value & "</part>" 'Производитель If not IsEmpty(ADOResults.fields(1).value) then response.write "<mfr>" & ADOResults.fields(1).value & "</mfr>" end if 'Цена, должно быть число 0.0000, без пробелов и знака валюту If IsNumeric(ADOResults.fields(2).value) then response.write "<p1>" & ADOResults.fields(2).value & "</p1>" end if 'Склад If not IsEmpty(ADOResults.fields(3).value) then response.write "<stock>" & ADOResults.fields(3).value & "</stock>" end if 'Описание If not IsEmpty(ADOResults.fields(4).value) then response.write "<note>" & ADOResults.fields(4).value & "</note>" end if 'Валюта response.write "<cur>euro</cur>" response.write "</line>" ADOResults.MoveNext wend response.write "</data>" else 'Упс! Ничего не нашли... response.write "<data />" end if else response.write "ERROR: Couldn't connect to database" end if set ADOConnection = nothing set ADOResults = nothing %> |
Скачайте буклет с подробным описанием услуги |
© 2006 — 2024 Капитал Плюс Телефон, e-mail, ICQ для связи |
Регистрация • Реклама на сайте |