Jump to content

homm

Expert
  • Posts

    1,786
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by homm

  1. homm

    ооп проблема

    нет. Читай книжки.
  2. homm

    ооп проблема

    И каких, же, ня, недостатков лишен этот, ня, класс? Или ты, ня, хочешь, ня, чтобы я, ня, сам за тебя все, ня, сделал?
  3. homm

    ооп проблема

    query_id у тебя содержится в том же классе, что и сама база. Может быть нужно создавать отдельный объект для каждого запроса? <?php class cDBQuery implements Iterator, ArrayAccess{ function __construct($sql, $params=NULL, $mode = MYSQL_ASSOC){ if ($params !== NULL) { if (gettype($params) == 'array') { foreach($params as &$param){ $param = "'".mysql_escape_string($param)."'"; } array_unshift($params, $sql); $sql = call_user_func_array('sprintf', $params); } else { $sql = sprintf($sql, "'".mysql_escape_string($params)."'"); } } if (cDBQuery::$link){ $this->r = mysql_query($sql, cDBQuery::$link); if (mysql_errno(cDBQuery::$link)){ throw new Exception("cDBQuery->__construct() : ".mysql_error(cDBQuery::$link)); } } else { $this->r = mysql_query($sql); if (mysql_errno()){ throw new Exception("cDBQuery->__construct() : ".mysql_error()); } } $this->length = mysql_num_rows($this->r); $this->mode = $mode; $this->current_row = 0; } function __destruct() { mysql_free_result($this->r); } /* implements of Iterator */ function valid() { return $this->current_row < $this->length; } function rewind() { $this->current_row = 0; $this->seek(); } function key() { return $this->current_row; } function next() { $this->current_row++; } function current(){ return mysql_fetch_array($this->r, $this->mode); } /* implements of ArrayAccess */ function offsetExists($id){ return (((int) $id) < $this->length) && (((int) $id) >= 0); } function offsetGet($id){ if ($this->offsetExists($id)) { if ($this->current_row != $id) { $this->current_row = (int) $id; $this->seek(); } $this->next(); return $this->current(); } else { return NULL; } } function offsetSet($id, $val){ /* not supported in DBQuery */ } function offsetUnset($id){ /* not supported in DBQuery */ } protected function seek(){ if ($this->length) mysql_data_seek($this->r, $this->current_row); } public function getRow(){ if ($this->length) return mysql_fetch_array($this->r, $this->mode); else return array(); } public function getValue(){ if ($this->length) { $row = mysql_fetch_row($this->r); return $row[0]; } else return NULL; } public function getID() { if (cDBQuery::$link) $r = mysql_query('SELECT LAST_INSERT_ID()', cDBQuery::$link); else $r = mysql_query('SELECT LAST_INSERT_ID()'); $row = mysql_fetch_row($r); mysql_free_result($r); return $row[0]; } public $mode; // mode of return row: MYSQL_ASSOC, MYSQL_NUM or MYSQL_BOTH public $length; // count of returned rows; static public $link = NULL; // set you link identifer before use protected $r; protected $current_row; } ?>
  4. homm

    ооп проблема

    Чем у тебя является класс db ? Является ли он классом для работы с базой данных, или классом для работы с одним запросом? Если он является классом для работы с базой, то как в нем оформляется ответ от базы, есть ли у него какая-то сущность, которая четко идентифицирует один запрос?
  5. homm

    ооп проблема

    Давай все с начала. Представь, что меня до этого здесь не было и я не обзывал тебя пять раз В чем суть проблемы, объясни досканально, а не как ты обычно объсняешь — «не работает!!!».
  6. homm

    ооп проблема

    Ты пробовал их ЧИТАТЬ? Всю жизнь с протянутой рукой? Если ты один раз приходишь и говоришь «дай мне рыбу!», я дам тебе рыбу. Когда ты придешь во второй, я наверное тоже дам тебе рыбу. Но если ты каждый день ходишь и просишь рыбы, проще научить тебя рыбачить. Согласен? Нельзя изо дня в день ходить на форум и через год быть таким-же тупым, как в самом начале. Тут ты прав, но дело не в этом. Если человек читает, думает над прочитанным, он впитывает знания. Если он по форумам шатается и на примерах из сети все делает, он так и останется дебилом. С этой точки зрения, без разницы, есть ли там ООП. Потом можно будет просто другую книжку взять.
  7. homm

    ооп проблема

    > ... у меня лежат книжки по php 4,5. Ну я так и думал, что лежат.
  8. homm

    ооп проблема

    Дима, там еще было, пропустил нет, это не задача. Перевести блог на ООП — это не задача. Задача - сделать удобный доступ к базе, работу с результатом как а массивом, автоматическое использование нужного соединениея. это похоже на задачу. vvsh, давай честно, ты пробовал читать книжки? Ты в жизни хоть одну книгу по теме прочел? Хоть какой-нибудь материал по php и mysql ? Или все из форумов почерпнул? Не будешь читать книжки — так и вырастишь дебилом.
  9. homm

    ооп проблема

    Как нибудь! в этом и суть программирования, у тебя есть задача, ты должен составить алгоритм, который би приводил к решению это задачи, а потом самая малость — записать на известном тебе языке. Думай, думай, думай. Включай мозг. Подумай, как оно работает сейчас. Как ты бы хотел чтобы оно работало. Какие цели ты достигаешь используя те или иные средства. Ты используешь ООП, это средство. у тебя есть цель которую ты достигаешь, используя это средство? Или ты как обычно хочешь выучить еще одно слово? Ставь задачи, пиши алгоритмы, и все время думай. Помоему это НЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯя, по английски.
  10. homm

    ооп проблема

    А че, sic, последовательность не заданная?
  11. И это ничего не гарантирует, просто в большинстве случаев, возможно, поможет.
  12. homm

    ооп проблема

    НЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ, у тебя идет вызов: $this->query("SELECT * FROM table"); После него у тебя $this->row() и $this->num() будут возвращать строку и количество строк последнего запроса. А потом у тебя идет вызов: $this->query("SELECT * FROM table2 WHERE field2 = '$row[field]'"); и после него $this->row() и $this->num() тоже будут возвращать строку и количество строк последнего запроса. Последнего, блядь, последнего!!!
  13. homm

    ооп проблема

    Да. И что, это тебя вообще никак не наталкивает на мысли, почему у тебя лажа выходит? Я же не спросил, что они делают, я спросил что с ними будет после указанной строчки. Вообще никаких ассоциаций? Поспешил ответить на мои вопросы? Я расчитывал может у тебя у самого искорка зажжется, ты поймешь что не так. Ответ же, блин прямо написан, нужно только глаза открыть, мозг даже включать не надо, все тут рефлекторно должен получится. А у тебя никаких ассоциаций, никаких решений, не единого проблеска. Ты идиот, бросай это дело, из тебя вообще ничего путнего не получится
  14. homm

    ооп проблема

    Здесь. Как ты считаешь, что должно стать с $this->query_id и что после этого должен вернуть следующий вызов $this->row().
  15. Каюсь, знакомый. Только это не попап. Поищите какой-нибудь блокировщик рекламы на http://operawiki.info/
  16. Меню «как на этом» вполне себе чудовищно. У тебя уже лучше.
  17. Владимир Шелгунов, ты еще так молод. Ты нахватался умных слов, значения которых не понимаешь и другим объяснить не можеш.
  18. ctrl+f12 — укажите как поступать с всплывающими окнами. Для конкретного сайта: правой кнопкой — настройки для сайта — всплывающие. Как можно было это не найти…
  19. homm

    с 8 марта!

    Каляка-маляка, с праздником тебя лично!
  20. Ну прости, не тестировал. Домашнее задание — добавить перенос строк в конце.
  21. Только нужно это написать не здесь, а на соответствующей странице.
  22. я что-то не понял. Ты сейчас написал какие-то слава от себя и считаешь это докозательнством? Я бог!! Му-ха-ха! Видишшь, я бог Будешь спорить — еще раз себя процетирую.
  23. На главной у вас написано «Рождественское послание Владыки Анастасия · 05-01-09» а внутри «5 января 2009». Как вы думаете, какой вариант нужно использовать в обоих местах? Вообше по всему сайту даты бесяче поставленны. Только кое-где нормально. Там же: http://pravbrat.ru/news/christmas2009-epistle «Епископъ Анастасiй» Я так понимаю, раз статья за январь года сего, человек этот реален и наш с вами современник, живет в России и соответственно имя у него может быть только современными русскими буквами. Не стоит комплексовать по поводу того, что церковь имела влияние только в средние века и стараться делать вид, что ничего не изменилось. «Ваш браузер устарел. Пожалуйста, обновите его.» я могу понять, почему люди так пишут. Даже с учетом того, что 90% посетителей не знает что такое браузер и как его обновить. Но зачем контент то прятать? Над вами пользователи ие6 в дествтве издевались? Кстати, в ие7 все тоже плохо, хотя этот браузер не устарел. «Материалов пока нет» ну и уберите этот пункт меню с глаз долой, пока материалы не появятся.
  24. вот код, делающий аналогичные действия: while($table_name = mysql_fetch_row($tables_list)) { $text = ''; $result = mysql_query("SELECT * FROM ".$table_name[0]); while($row = mysql_fetch_row($result)) { $text .= implode('|', $row); } file_put_contents($table_name[0].".txt", $text); } Говоря «аналогичный», я имею виду что он точно также как и твой подвржен уязвимости, когда в одном из полей встретится символ «|». 8 строчек вместо 20, и выполняться будет раза в 3-4 быстрее. а теперь разберем твой говнокод. Я постараюсь не материться. $fields = mysql_list_fields("vvsh",$table_name); $columns = mysql_num_fields($fields); Зачем тебе поля выбирать? бредишь. $i2='1'; Ты присваевашь число. ЧИСЛО. Зачем ты преобразуеш его в строку? $field = mysql_field_name($result,$i2); У тебя же уже есть массив со значениями и ключами! Почему ты берешь ключи черт знает откуда? $text .= "$row[$field]"; Ты присваиваешь одной переменной значение другой. Зачем ты перед этим в строку преобразуешь? fwrite($file,$text); } Файл после тебя пушкин будет закрывать? Ты разве не сам ответил на свой вопрос? Тебе нужен замененный перенос! Вот и заменяй. Как логично, правда?
  25. Если вам кажется, что какие-то файлы могут у пользователя закешироваться, делайте на них ссылку вида style.css?20090307 с датой последнего изменения. И в опере Ctrl+F5 совсем для другого. а вообще пользователь не должен знать ни о каких кнопках, у него может быть КПК со стилусом, тем более осквернять такой тематический сайт техническими деталями как-то нелогично.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy