Log in Register |
Ready Script ExamplesOur programmers have prepared script templates for you to simplify the work of your programmers. All you have to do is adjust the SQL query to match the structure of your database. If you don't have a programmer, or if they are unable to prepare the script, please use our programmer assistance. It's free!Choose your preferred programming language:
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_pconnect($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</stock>'; 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 ChipFind Ltd. Contact phone, e-mail, ICQ |
Register • Advertising |