Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1267 • Страница 11 из 64<  1 ... 8  9  10  11  12  13  14 ... 64  >
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 07.01.2006
Базу и таблицу создавал следующими запросоми:
CREATE DATABASE ipoteka;

CREATE TABLE banks (
bank varchar(100) not null primary key,
info varchar(50),
ipoteka varchar(50))

Скриптик:
http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=11359&filename=cic.rar

Простенькая база:
http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=11358&filename=ipoteka.rar

Буду очень признателен за помощь!!!
Добавлено спустя 5 часов, 12 минут, 33 секунды
В прошлый раз выложил немного неправильный cic.rar.
Вот ссылка на верный:
http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=11369&filename=cic.rar
Добавлено спустя 1 час, 1 минуту, 59 секунд
Спасибо, больше не надо.
Сам исправил.
Дело было в банальной опечатке. :)



Партнер
 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
Leito писал(а):
Спасибо, больше не надо.
Сам исправил.
Дело было в банальной опечатке. :)

:D

2All
Тут сегодня с коллегой по работе во время обеда обсуждали свои движки, неожиданно соскачили на такую фишку, которая есть в некоторых языках (Visual Basic, Python).
Код:
<?php
function myFunction($a = 3, $b = 'text')
{
   // какие то действия
}

myFunction($b = 'new text to deal with');
?>

Поясняю
При вызове функции строка 'new text to deal with' передаётся в параметр $b, а $a так и остаётся равным значению по умолчанию, тобишь 3-м.
Пример слегка тривиален, но вот в функциях где по 4-5 параметров и 2-3 из них необязательные, было бы реально удобно. Вот примерчик по сложнее:
Код:
<?php

function select($table, $fields = '*', $where = null, $cnt = null, $order = null)
{
  //Генерируем SQL запрос в зависимости от переданных параметров
}

// А теперь вызовем нашу функцию в нескольких вариациях, как это сейчас делается в PHP
$sql = select('table', '*', array('filed' => 'value'), '0, 10');
$sql = select('table', array('field1', 'field2'), null, 'field1 ASC');
$sql = select('table', '*', null, null, 'id ASC');

// Немного не красиво, правда? А если бы работало то, что я описывал выше, это выглядело бы так:
$sql = select('table', $where = array('filed' => 'value'), $cnt = '0, 10');
$sql = select('table', array('field1', 'field2'), $order = 'field1 ASC');
$sql = select('table',  $order = 'id ASC');
?>

Если первый первый вызов спорно оспаривать, проще написать эту звёздочку, чем потом $where = array('filed' => 'value') и $cnt = '0, 10' то вариант 2 стабильно показывает что это удобная возможность, а 3-й вариант вообще почти незаменим ;)
Да, в 5-м PHP можно на OOP реализовать подобие перегрузки, но для такой функции (точнее там будет метод класса) реализовать будет проблемно, много кода для проверки наличия параметров будет. ИМХО, не выход. Посему считаю такая возможность была бы суперской :) Пишем e-mail разработчикам PHP :lol: :? ;)
Добавлено спустя 2 часа, 13 минут, 11 секунд
Такой вопрос, кто нить работал с Exceptions & try-throw-catch конструкциями? А то у меня проблемка возникла, есть такой код
Код:
<?php

class sqlError extends Exception {}

final class DB
{
    const port = '5432';
    protected $db = null;
    // Class constructor. Default port for PostgreSQL is 5432
    final public function __construct($host, $user, $password, $database, $port = self::port, $options = null)
    {
        if (empty($host)) throw new Exception('Hostname is not given');
        $this->db = $this->connect($host, $user, $password, $database, $port, $options);
    }

    final public function __destruct()
    {
        if (isset($this->db) || null !== $this->db) pg_close($this->db);
        foreach ($this as $key => $value)
            unset($this->{$key});
    }

    final public function connect($host, $user, $password, $database, $port = self::port, $options = null)
    {
        if (null !== $options)
            $options = null;
        $connect_string = 'host='.$host.' port='.$port.' dbname='.$database.' user='.$user.' password='.$password.$options;
        if(!$this->db = @pg_connect($connect_string))
            throw new sqlError('Cannot connect to server!');
    }

}

try {
     $db = new DB('host', 'user', 'pass', 'database_name');
} catch (sqlError $e) {
    echo $e->getMessage();
    $db = null;
} catch (Exception $e)
{
    echo $e->getMessage();
    exit();
}

?>

В методe connect при вызове pg_connect приходится принудительно глушить ошибку, иначе она вылазит на экран и естественно выполнение скрипта обрывается. Пробовал конструкцию вида
Код:
$this->db = pg_connect($connection_string) or throw new sqlError('Cannot connect to server');

Вылазит Parse error, нельзя так писать... Что, теперь везде принудительно надо глушить ошибки встроенных функций?! HELP!
Добавлено спустя 35 минут, 3 секунды
Ещё ляп один, уже при работе с PostgreSQL
Код:
if(!$this->db = pg_connect($connect_string))
        {
            throw new sqlError('Cannot connect to database server! Reason: '.pg_last_error());
        }

Знаете что этот код выводит?
Код:
Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: password authentication failed for user "iirclv" in C:\engine\db.php on line 30

Warning: pg_last_error() [function.pg-last-error]: No PostgreSQL link opened yet in C:\engine\db.php on line 32

Ладно первый Warning, хоть и я писал о нём выше, но второй меня убил на повал! Спрашивается, как мне теперь узнать в коде ошибку, из-за которой у меня сбой скрипта при display_errors = 0 что бы понять вообще что мне на экран выводить?
*_Psih плачет и хочет обратно на MySQL, там какраз новенькая объектная библиотека появилась (mysqli)*


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
На счёт последнего просто введён не правильный пароль, а pg_last_error тут просто не при деле так как она выдаёт ошибку ресурса ($this->db) а его в данном случае быть не может.

В итоге советую просто выводить ошибки не на экран а в файл, а pg_last_error() убрать хотя бы только там.
Добавлено спустя 2 минуты, 19 секунд
Код:
if (isset($this->db) || null !== $this->db) pg_close($this->db);

Какой тут нафик isset если есть генеальная (для этого случая) функция is_resource()

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
virus писал(а):
На счёт последнего просто введён не правильный пароль, а pg_last_error тут просто не при деле так как она выдаёт ошибку ресурса ($this->db) а его в данном случае быть не может.

В итоге советую просто выводить ошибки не на экран а в файл, а pg_last_error() убрать хотя бы только там.
Добавлено спустя 2 минуты, 19 секунд
Код:
if (isset($this->db) || null !== $this->db) pg_close($this->db);

Какой тут нафик isset если есть генеальная (для этого случая) функция is_resource()

Дык, библиотека mysql при ошибке подключения вобще-то выдавала текст ошибки: Incorect password for user bla bla bla.. Я специально ошибку допустил, что бы сделать её отлов...

Про is_resource не знал. Теперь буду :D


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
_Psih pg_last_error() запрашивает значение с самого сервера СУБД причём realtime (а mysql_error() лишь возвращает уже полученный ответ) в том то и их разница...

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
Кстати почти оф-топ, не понимаю зачем нужен PostgreSQL среднестатестическому сайту,
MySQL обладает достаточной скоростью и функциональностью для типичных задач...
(другое дело нагруженным сайтам он может помочь,
т.к там давольно обширные возможности по оптимизации)

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
virus писал(а):
Кстати почти оф-топ, не понимаю зачем нужен PostgreSQL среднестатестическому сайту,
MySQL обладает достаточной скоростью и функциональностью для типичных задач...
(другое дело нагруженным сайтам он может помочь,
т.к там давольно обширные возможности по оптимизации)

Гх, это далеко не средний сайтик... там есть такие операции, что даже Postgre загибаетсянафиг, если неправильно SQL запрос написать... к тому же там обязательна реляция + в добавок к UnrealIRCD SuxServices работают на Postgre. Посему выбора на какой базе писать то и небыло....


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
_Psih писал(а):
если неправильно SQL запрос написать...

Мы говорим о "правильных" запрсах, а не о скиптах "сопливых" школьников :)

На правах оф-топа, сейчас пощупаю MySQL-5.0.18 под FreeBSD ух кайф

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
virus писал(а):
_Psih писал(а):
если неправильно SQL запрос написать...

Мы говорим о "правильных" запрсах, а не о скиптах "сопливых" школьников :)

На правах оф-топа, сейчас пощупаю MySQL-5.0.18 под FreeBSD ух кайф

Дело даже не в том, школьник или нет... Там запросы идут уже не просто
Код:
SELECT bla FROM table WHERE field1 = a AND field2 = b;

А куда сложнее. Всякие групировки, суммы, подзапросы, самописные процедуры, JOIN'ы. В итоге сам запрос получается в 7-8 строк при длинне строчки в 80-120 символов :) Тут уже и знающий человек пока добъётся эффективности, можно пару раз свалить саму базу долго выполняющимся запросом минуты так на 1.5-2 :) У меня бывало, как пойдёт, так IRC сервисы по таймауту просто обрубались :) Лез на сервер и запускал их по новой :)


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
_Psih писал(а):
Всякие групировки, суммы, подзапросы, самописные процедуры, JOIN'ы

А зачем это среднестатестическому сайту ? (в минимум 50% случаев это лишнее)

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 03.01.2003
Откуда: Ростов-на-Дону
_Psih Оптимизируй запросы, есть масса способов, выкладвый самый навароченный по твоему мнению самый навароченный скрипт, чё нить при придумаем.
Добавлено спустя 1 минуту, 51 секунду
Совсем недавно пользовался такой программой, называется она SQL Monitor, для тех кто незнает, данная программа позволяет перехватывать SQL запросы на сервер, отправленые любой программой.

Никто не когда не занимался написание подобной программой, для перехвата SQL запросов. Язык на которм это можно реальзовтаь не имеет значения. Заранее благодарю. У кого нибудь есть какие-нибудь идея относительно как это можно перехватить.

Ведь если SQL Monitor это может делать, значит и самому можно написать.

_________________
Just Zerg! Остановим деградацию русского языка, скажем нет удафкомовской лексике!!


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
virus писал(а):
_Psih писал(а):
Всякие групировки, суммы, подзапросы, самописные процедуры, JOIN'ы

А зачем это среднестатестическому сайту ? (в минимум 50% случаев это лишнее)

Трекер к среднестатистическому не отнесёшь. Посещаемость более 10 тысяч в день, причём народ там висит постоянно, в среднем 250 человек всегда online + ещё сбор статистики по торрентам в среднем с 10 тысяч соединений... крч в базу в среднем 150 запросов в секунду (больше она не могла обработать, да и просто выставил ограничения для apache, что бы через чур много запросов не принимал). Так что тут с оптимизацией ой как тяжко. И Join'ов там прилично


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
_Psih Кстати как ты оцениваешь сложность написания скрипта игры в BlackJack ?
(в принципе логика там давольно проста, по этому у меня возникла мысль попробовать)
И как лучше его сделать, с приминением AJAX или нет ?

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
Ну сложность, имхо, не сильно высокая, сколько трудоёмкая. Думаю где-то средней сложности. Сам не пробовал.
Писать думаю стоит с AJAX, хоть какая-то динамичность :) И не надо постоянно перегружать страницы. Но вообще я AJAX не пробовал, так что я его возможности не сильно знаю... Попробовать стоит :)
Добавлено спустя 5 минут, 20 секунд
Да, сегодня закончил перенос трекера на Linux (Gentoo). Над чем ещё поработать есть, вместо lighttpd + FastCGI вернул Apache + PHP 5.1.1... lighttpd надо ещё уметь настраивать... что-то не так скомпилил... да и Апач отличается от той же BSD по конфигу неплохо... тут потоки, все дела... MySQL себя чувствует с LinuxThreads просто прекрасно, лучшей системы для него не придумаешь. Об apache - вопрос спорный.
И вообще, мож кто знает где можно почтитать про настройку apache с threads?


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
_Psih писал(а):
Но вообще я AJAX не пробовал, так что я его возможности не сильно знаю...

Ну в принципе для динамики можно не столько AJAX скольно простой JS (для кросс-браузерности)
В принципе многие используют приёмы типа document.write('<script src"asd.js"></script>')
ну и в таком стиле, так что сложностей с AJAX я не вижу, а вот очень боюсь я того
что такое казалось бы простое на первый взгляд дело превратится в 3 строчки кода
и в мегабайты простой рутины, и именно это пугает...

_Psih писал(а):
сегодня закончил перенос трекера на Linux (Gentoo)

А я вот тоже увлёкся Линухами, сейчас например пишу из под Ubuntu LiveCD
(я этих Live-ов скачал десятки, и пробую каждый, причём сначала на виртуальном компе а уже потом на реальном)

_Psih писал(а):
MySQL себя чувствует с LinuxThreads просто прекрасно

Так в рнрклубовском журнале приводили тесты скорости мускула под разными осями и там тоже сказали что с LinuxThreads он просто "летает"

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
virus писал(а):
_Psih писал(а):
MySQL себя чувствует с LinuxThreads просто прекрасно

Так в рнрклубовском журнале приводили тесты скорости мускула под разными осями и там тоже сказали что с LinuxThreads он просто "летает"

Это я читал, правда давно обзор был, там был BSD, Solaris и Linux на базе ядра 2.4. Щас 2.6 я юзаю ядро, даже не смотря на Load avarages от 2 до 4 время ответа сервера намного меньше + он отвечает более стабильно, на BSD было просто или ошибка соединения с MySQL, или вообще ответа небыло. Посему я доволен. Осталось довести настройки до оптимального состояния :)

Кстати, говорят что apache как-то шустрее на BSD пашет... Может, когда он без LinuxThreads пашет, это и верно, но если их подключить при компиляции, насколько шустрее он начинает работать? С поправкой на то что у меня 2xCPU система.

Насчёт рутины... ну половина будет точно рутиной, ведь HTML верстать то надо :D Но алгоритм будет не из лёгких, т.к. это всё-же скрипты, а не полноценная программа. Придётся поизвращятся ;)

LiveCD есть LiveCD, не у всех дистров они есть :) Я например подсел на Gentoo. Он единственный полностью основан на системе портов (установка приложения происходит его сборкой из исходных кодов), что мне нравится из-за подгонки любого приложения под конкретный комп. Хотя конечно если это не хотя-бы 1.5-2 GHz , то сборка довольно долго идёт. При установке это нудно :/ (Я благо собирал систему с присутствием второго компа всегда :))


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
_Psih писал(а):
правда давно обзор был

Да давно, но а принципе ситуация даже если и изменилась то не думаю что очень сильно...

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 28.03.2005
Откуда: Латвия, Рига
virus
Ты Zend Studio юзал?
А то у меня выбор чё ща заюзать: Visual Studion 2005 + VS.php (модуль для работы с PHP в VS) или Zend Studio.. тут опытный чел грит VS лучше :)


 

Member
Статус: Не в сети
Регистрация: 18.11.2002
Откуда: не вернуться
_Psih писал(а):
Zend Studio

Штука красивая и полезная, но я её не люблю (не по объективным причинам а просто по личным) по этому тут я тебе не советчик...

_________________
Летели гуси-лебеди, а им навстречу - воробьи-пингвины и соловьи-страусы...


 

Member
Статус: Не в сети
Регистрация: 28.12.2003
Откуда: Vladivostok
_Psih
я раньше когда басик изучал, работал с висуал студио.нет и считал что лучше ничего нету (и щас так думаю). потом пересел на пхп. попробовал студио.нет + модуль для работы с пхп. Не понравилось. нето. сейчас сижу на зенде


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 1267 • Страница 11 из 64<  1 ... 8  9  10  11  12  13  14 ... 64  >
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan