PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (792): В начало « ... 780 781 782 783 [784] 785 786 787 788 ... » В конец

> Найдено сообщений: 11869
Мелкий Отправлено: 08 Ноября, 2009 - 18:44:07 • Тема: Качество изображения • Форум: Программирование на PHP

Ответов: 2
Просмотров: 250
до 256 цветов - GIF и PNG-8. Цвета сохраняются в первозданном RGB, удаляются неиспользуемые цвета.
Мелкий Отправлено: 08 Ноября, 2009 - 13:21:50 • Тема: Кто сейчас на сайте • Форум: Программирование на PHP

Ответов: 2
Просмотров: 469
А почему ключ ид? Зачем он вообще? По user ключ сделать же можно. Или предполагается, что 1 человек может находиться в 2 местах?

Если ключом сделать ид, то можно сократить:
PHP:
скопировать код в буфер обмена
  1. $sql = "SELECT * FROM `online` WHERE `user` = '".$iduser."' LIMIT 1";
  2.     if(mysql_num_rows(mysql_query($sql)) > 0)
  3.     {
  4.         //если даный пользиватель есть в базе, обновляем его time
  5.         $sql = "UPDATE `online` SET `time` = '".$time."' WHERE `user` = ".$iduser." LIMIT 1 ;";
  6.         mysql_query($sql);
  7.     }
  8.     else
  9.     {
  10.         //если пользивателя ещё нету в базе, заносим его туда
  11.         $sql = "INSERT INTO `online` ( `id` , `user` , `time` ) VALUES ('', '".$iduser."', '".$time."');";
  12.         mysql_query($sql);
  13.  
  14.     }

до
PHP:
скопировать код в буфер обмена
  1.  
  2. mysql_query("insert into `online` (`user`,`time`) values ('".$iduser."','".$time."') on dublicate key update `time`='".$time."'");


Удаление тоже ужасно. Почему время интовое? А не DATETIME? Тогда удаление сводится к:
PHP:
скопировать код в буфер обмена
  1.  
  2. $delete = 10*60; //10минут переводим в секунды
  3. mysql_query("delete from `online` where `time`<'".date("Y-m-d H:i:s",time()-$delete)."'");
  4.  

И то это не лучший вариант, лучше вообще использовать родные функции мускула по работе со временем.
Мелкий Отправлено: 07 Ноября, 2009 - 23:36:07 • Тема: виснет браузер от for() • Форум: Программирование на PHP

Ответов: 5
Просмотров: 439
if в строке 12 закрывать кто будет? ;)

PS: зачем столько массивов?
Мелкий Отправлено: 07 Ноября, 2009 - 21:35:51 • Тема: Запись в файл данных из POST запроса • Форум: Напишите за меня, пожалуйста

Ответов: 9
Просмотров: 277
Ejik, ?arg1=111&arg2=222&arg3=333 - это GET параметры, пост по ссылкам не виден. Надо именно их писать?
Мелкий Отправлено: 07 Ноября, 2009 - 21:31:02 • Тема: Помоните Исправить бяку в Аяксе!!!!!!! • Форум: Напишите за меня, пожалуйста

Ответов: 2
Просмотров: 28
Не понял я, что куда там перемещается? Разметка страницы плывёт при вставке списка? Или что?
Если да, то ни php, ни ajax тут ни при чём, вы значит что-то затираете в объекте "podrazdels", влияющее на разметку.
Мелкий Отправлено: 06 Ноября, 2009 - 17:45:02 • Тема: PHP в стиле Delphi VCL • Форум: SQL и Архитектура БД

Ответов: 13
Просмотров: 74
eai пишет:
Это совсем не одно и тоже

Поясните, почему не сделать например так:
PHP:
скопировать код в буфер обмена
  1.  
  2. publick function __construct($db = "database1", $host = "localhost", $user="bduser",$passw = "password") {
  3. mysql_connect($host,$user,$passw);
  4. }
  5.  

Или, чтобы не указывать непосредственно в методах имена, можно дать им незначащие значения (например, false) и затем проверить, если передали отличный от дефолтного параметр, то его и использовать. Если нет - взять сохранённый в классе.

eai пишет:
Как это под рутовым, кто его пустил то туда

Это я просто даю пример в другую крайность - класс слишком абстрактен и даже непонятно, с чьими правами скрипт работает Улыбка
Мелкий Отправлено: 06 Ноября, 2009 - 16:58:29 • Тема: PHP в стиле Delphi VCL • Форум: SQL и Архитектура БД

Ответов: 13
Просмотров: 74
eai пишет:
А знаете сколько с тех пор именилось


В том-то и дело, что представляю, как оно всё выглядит в последние пару лет, а что там было когда-то в глубокой древности - отдельно гуглю.


eai пишет:
Вообще по уму нужно 2 конструктора, пустой и с параметрами, но к сожалению PHP это не поддерживает.

А значения по-умолчанию для чего ещё даны? Это-то как раз не сложно сделать.

eai пишет:
но нужно иметь "насильный" метод тоже

Это не спорю, нужно. Можно даже его же в деструкторе и вызывать. Это просто к тому, что пускай класс сам закрывает соединение, раз уж его можно этому научить Улыбка

eai пишет:
Баа.таблица - плохой вариант, потому что не таблица а запрос!
Кроме того это нарушает принцип абстракции, запрос независит от БД

Да, это не самый верный вариант, но, в некоторых случаях единственный возможный. А в случае класса, реализующего соединение с БД, наоборот, указание БД по-умолчанию, такое же логичное действие, как и указание пользователя, хоста, пароля соединения. Или же, нелогичное, т.к. тогда не видно, куда коннектится и под чьим именем скрипт. Может он под рутовым пользователем сидит в базе?

eai пишет:
Кроме того это нарушает принцип абстракции, апрос независит от БД

А ведь всё равно надо будет шерстить скрипты при изменении имени БД, хоть для указания set_db($db);, хоть для запросов.
Либо, аналогично, тянуть переменную с именем вторичной БД и вставлять это имя в запросы через обычную конкатенацию.
Мелкий Отправлено: 06 Ноября, 2009 - 15:40:48 • Тема: PHP в стиле Delphi VCL • Форум: SQL и Архитектура БД

Ответов: 13
Просмотров: 74
eai пишет:
Страуструп токачто поперхнулся . Идиологический спор. Для сторонников процедурного программирования все что я пишу полная ахинея, им я доказывать ничего ен собираюсь, они просто идут иным путем и все. Все что я написал только для тех кто любит ООП

Я ничего не имею против ООП, наоборот, считаю, что штука полезная, особенно в области разделения видимости и взаимодействия объектов (в том числе с единым интерфейсом и иерархическими описаниями наследований).
Например, относительно GD, ImageMagick весьма удобный класс. Хотя бы тем, что тип файла распознает самостоятельно Улыбка
Но всё на ООП делать - не стоит. А то может echo надо в класс воткнуть и запретить вывод?

eai пишет:
Ну не тока виндовый, они делали сие для линукс, но ен пошо в массы, не нашо спроса к сожалению.

Ну потому и пишу "де-факто" ;) В далёком 2002 (когда выпустили под линуха делфю) году у меня не то, что линуха не стояло, вообще ПК не было Улыбка

eai пишет:
А не проще ли просто возложить разницу трактовки запросов на обертку?

Не очень... Зачем писать кучу кода, который ещё и выполняться будет, отнимая ресурсы, для достаточно постоянной СУБД?

eai пишет:
if (!@$DB->query('INSERT INTO tbl(id, field) VALUES(1, ?)', $field)) {

Вот, примерно это и спрашивал. Если отдавать заботиться о экранировании и проверке данных на корректность единожды написанному методу, то это уже неплохой повод использовать такие классы. Правда, если они при этом не потребляют ресурсов в пару раз больше всего скрипта Улыбка
А то по первому сообщению данной возможности не было видно.

И по самому классу:
Я так понимаю, что конструктор инициализирует соединение с БД по дефолтным значениям, определённым в классе?
А $db->set_params($dbhost, $dbname, $dbuser, $dbpasswd, "utf8"); - просто возможность сделать коннект к другой базе? А почему бы не передавать эти данные сразу конструктору, чтобы класс не создавал дважды соединение?
Почему бы закрытие соединения не вынести в метод __destruct? Тогда будет закрываться самостоятельно. (или я плохо понимаю, когда этот метод вызывается?)
Выбор БД я бы определил тоже по-умолчанию, т.к. в рамках 1 проекта БД меняется не слишком часто и в крайнем можно обратиться к ней по полному имени - т.е. база.таблица.имя_поля
Мелкий Отправлено: 06 Ноября, 2009 - 14:40:25 • Тема: PHP в стиле Delphi VCL • Форум: SQL и Архитектура БД

Ответов: 13
Просмотров: 74
eai пишет:
Можно и с ними (собственно говоря долго жил и так) но копаться в котде потом сложнее.

В вашем коде я вижу лишь только псевдонимы стандартных функций. При том столь отчётливые псевдонимы, что возникает вопрос: а в чём разница?

eai пишет:
Кроме того такая структура поволяет сделать код портабельным между различными SQL серверами

Вот только разве что. Но, это надо учитывать уже на этапе создания запросов.

eai пишет:
Почему вообще необходимо использовать ООП?

Необходимо? Ни в коем случае не необходимость. Использовать нужно только наиболее подходящие методы.

eai пишет:
Почему на дельфях прямые выовы не испольуются?

Не знаю, меня объектный паскаль, а тем более де-факто только виндовый, не интересует.
Мелкий Отправлено: 06 Ноября, 2009 - 14:07:12 • Тема: Запись в БД из массива • Форум: Программирование на PHP

Ответов: 9
Просмотров: 502
iconv текст в новой кодировке возвращает, а не в переданную записывает, т.е.
$val = iconv(“windows-1251”, “UTF8”, $val);

И вообще, производительнее было бы отсылать всё одним куском:
PHP:
скопировать код в буфер обмена
  1.  
  2. $inf = '';
  3. foreach($ar as $val) {
  4.         $inf .= "('".iconv(“windows-1251”, “UTF8”, $val)."')";
  5. }
  6. $query = "INSERT INTO sms.dr_status (status_rus) Values ".str_replace(")(","),(",$inf);
  7. mysql_query($query, $db);
  8. echo mysql_error();
  9.  
Мелкий Отправлено: 06 Ноября, 2009 - 13:54:35 • Тема: PHP в стиле Delphi VCL • Форум: SQL и Архитектура БД

Ответов: 13
Просмотров: 74
И заодно чем оно всё лучше стандартных функций mysql_*?
Можно просто кодом.
Мелкий Отправлено: 05 Ноября, 2009 - 15:13:55 • Тема: Проверте пожалуйста • Форум: Напишите за меня, пожалуйста

Ответов: 12
Просмотров: 78
JROUD пишет:
Да, и я не уверен, но разве не нужно в php указывать void если функция ничего не возвращает?

Нет, не надо. Это вы C/C++ перечитали Улыбка

JROUD пишет:
большого смысла в функциях DBconnect, DBresult не вижу

А если подумать? Это общение с СУБД.

JROUD пишет:
но в функции DBdisconnect его вообще нет

Просто правило хорошего тона, сказать СУБД, что это соединение завершено.
Мелкий Отправлено: 04 Ноября, 2009 - 22:41:44 • Тема: Как в пустой таблице назначить авто_инкремент от 2000? • Форум: SQL и Архитектура БД

Ответов: 2
Просмотров: 21
ALTER TABLE `table` AUTO_INCREMENT =2000

может и при создании таблицы можно сразу указать AUTO_INCREMENT =2000, проверьте.
Мелкий Отправлено: 04 Ноября, 2009 - 19:26:00 • Тема: Обновление форума. Баги и ошибки пишем здесь • Форум: Колонка администратора

Ответов: 468
Просмотров: 199565
Fatal error: Out of memory (allocated 3145728) (tried to allocate 979856 bytes) in /home/admin/public_html/forum/in clude/fm.class.php on line 397
Мелкий Отправлено: 04 Ноября, 2009 - 13:02:27 • Тема: Блокировка элемента формы • Форум: Программирование на PHP

Ответов: 4
Просмотров: 625
А при чём тут "программирование на PHP"?

Страниц (792): В начало « ... 780 781 782 783 [784] 785 786 787 788 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB