|
|
|
|
$dbh = DBI->connect("DBI:mysql:$db:$host:$port",$user,$pass);
my $sth = $dbh->prepare("SELECT * FROM realty WHERE direction='Северо-Запад' ORDER BY priceform DESC");
$sth->execute();
while (my $ref = $sth->fetchrow_hashref()) {
#$ref->{'maxsquare'} образец для вставок
print " <tr> <td width=100\% align=left valign=top colspan=5 bgcolor=gray>$ref->{'lotnumber'}</td> </tr>";
print "<tr> <td width=20\% align=left valign=top>$ref->{'purpose'}</td>";
print " <td width=20\% align=left valign=top>$ref->{'typeofbuilding'}</td> ";
print " <td width=20\% align=left valign=top>$ref->{'kontrakt'}</td> ";
print " <td width=20\% align=left valign=top>$ref->{'priceform'} ($ref->{'priceforminsquare'})</td> ";
print " <td width=20\% align=left valign=top>$ref->{'minsquare'} - $ref->{'maxsquare'}</td> ";
print " </tr> <tr> <td width=100\% colspan=5 align=left valign=top>$ref->{'direction'}</td>";
print " </tr> <tr> <td width=100\% colspan=5 align=left valign=top>$ref->{'information'}</td>";
print " </tr><tr> </tr>";
}
print "</table>";
$sth->finish();
# Закрытие соединения с MySQL
$dbh->disconnect();
|
mysql-4
в итоге скрипт (perl) не выводит мне ту единственную запись в таблице в которой есть Северо-Запад. кто виноват? что делать? © | |
|
|
|
|
|
|
|
для: ARIRAN
(06.07.2006 в 14:00)
| | Виноват Я
[поправлено модератором] | |
|
|
|
|
|
|
|
для: valenok
(06.07.2006 в 14:52)
| |
/* Выполняем SQL-запрос */
$query = "SELECT * FROM realty WHERE purpose='офис'";
$result = mysql_query($query) or die("Query failed : " . mysql_error());
/* Выводим результаты в html */
print "<table>\n";
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)) {
print "\t<tr>\n";
foreach ($line as $col_value) {
print "\t\t<td>$col_value</td>\n";
}
print "\t</tr>\n";
}
print "</table>\n";
/* Освобождаем память от результата */
mysql_free_result($result);
/* Закрываем соединение */
mysql_close($link);
?>
|
взял код с сайта на пхп. в итоге то же самое. пока условие не ставишь то выводится вся база. как только задаю условие - пусто. | |
|
|
|
|
|
|
|
для: ARIRAN
(06.07.2006 в 16:51)
| | а латинские символы тоже не ищутся? | |
|
|
|
|
|
|
|
для: Trianon
(06.07.2006 в 17:00)
| | поменял сейчас значение на латинские буквы - все ищется. попутно выяснил что там в базе все в кодах типа склад вместо русских букв хотя при выводе отображается нормально. шо делать?
полазил по форуму щас нашел что проблема у всех обратная. я закачиваю в бд таблицы из екселя закачка проводится с помощью скрипта ABC Excel Parser Pro plugin сам скрипт весьма удобен задается таблица на винчестере указываются каким даным какие имена полей присвоить и создается база, но вот создается она в кракозябрах.
осложняется проблема еще и тем, что я ни в пхп ни в бд не шарю :( | |
|
|
|
|
|
|
|
для: ARIRAN
(06.07.2006 в 17:28)
| | Так кто мешает искать строку непосредственно в кракозябах?
л - UNICODE символ с кодом 1083 = 0x43B = 'л' | |
|
|
|
|
|
|
|
для: Trianon
(06.07.2006 в 17:57)
| | я могу конечно :) но это только первая часть моей эпопеи дальше мне надо будет организовать поиск через форму там в value везде кракозябры вбивать? :) | |
|
|
|
|
|
|
|
для: ARIRAN
(06.07.2006 в 18:07)
| | да нет... просто преобразовать вводимые в форме строки к этому виду, перед тем как собственно искать.
Всё это, конечно, лишь в том случае, если Вас устраивает держать базу в кракозябрах, и не устраивает (или невыполнимо) готовить данные перед импортом более адекватным образом. | |
|
|
|
|
|
|
|
для: Trianon
(06.07.2006 в 18:12)
| | в том то и фишка что меня не устраивает ни база в кракозябрах ни преобразование в форме запроса. оптимальным решением я думаю является подготовка данных перед импортом в адекватную форму, но я не знаю как. может я сюда выложу код этого скрипта (которым я закачиваю екселевские файлы) посмотрите что там можно сделать? в самой базе в phpmyAdmin кодировка выставлена Russian ru win-1251 MySQL 4.0.16-log phpMyAdmin 2.6.0-pl3.
хеееелп :) | |
|
|
|
|
|
|
|
для: ARIRAN
(06.07.2006 в 18:26)
| | Выложите. А лучше прикрепите аттачем. | |
|
|
|
|
 31.4 Кб |
|
|
для: Trianon
(06.07.2006 в 18:37)
| | вот. весь установочный архив.
я там во всех файлах воткнул
mysql_query ("set character_set_client='cp1251'");
mysql_query ("set character_set_results='cp1251'");
mysql_query ("set collation_connection='cp1251_general_ci'");
|
но не помогло. а скрипт хороший. удобный. | |
|
|
|
|
|
|
|
для: ARIRAN
(06.07.2006 в 19:32)
| | там, в файле includes.inc есть функция uc2html на 46-53 строках.
она преобразует unicode-строки в html-представления. Если её переписать вот так:
function uc2html($str) { // with windows-1251 character replacement
$ret = '';
for( $i=0; $i<strlen($str)/2; $i++ ) {
$charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
$charcode = (($charcode >= 0x410 && $charcode <= 0x44F) ? chr($charcode+0xC0-0x410)
: ($charcode == 0x401 ? chr(0xA8)
: ($charcode == 0x451 ? chr(0xB8)
: (($charcode <= 0x7E ) ? chr($charcode)
: ('&#'.$charcode)))));
$ret .= $charcode ;
}
|
то символы русского алфавита она начнет возвращать в кодировке windows-1251.
Это, конечно, грязный хак, но, как я понимаю, именно он Вам и нужен. | |
|
|
|
|
|
|
|
для: Trianon
(06.07.2006 в 20:30)
| | заменил оригинальный блок на ваш. запустил. выдает ошибку
Parse error: parse error in includes.inc on line 244
после замены строка 244 у меня выглядит как ?> ???
открывал в DZ Soft Perl 5.4 | |
|
|
|
|
|
|
|
для: ARIRAN
(07.07.2006 в 09:59)
| | Прошу прощения. Пару строк забыл. :)
function uc2html($str) { // with windows-1251 character replacement
$ret = '';
for( $i=0; $i<strlen($str)/2; $i++ ) {
$charcode = ord($str[$i*2])+256*ord($str[$i*2+1]);
$charcode = (($charcode >= 0x410 && $charcode <= 0x44F) ? chr($charcode+0xC0-0x410)
: ($charcode == 0x401 ? chr(0xA8)
: ($charcode == 0x451 ? chr(0xB8)
: (($charcode <= 0x7E ) ? chr($charcode)
: ('&#'.$charcode)))));
$ret .= $charcode ;
}
return $ret;
}
|
| |
|
|
|
|
|
|
|
для: Trianon
(07.07.2006 в 10:02)
| | чувак, ты - гений :)
все арбайтен и в базе все по-русски и выборка по-русски работает :)
спасибо!
p.s. а насчет грязного хака скрипт то фришный так что это не грязный хак а доработка-русификация :)
идем дальше, вопросв будет еще много :) | |
|
|
|