
homm
Expert-
Posts
1,786 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Calendar
Store
Everything posted by 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; } ?>
-
Чем у тебя является класс db ? Является ли он классом для работы с базой данных, или классом для работы с одним запросом? Если он является классом для работы с базой, то как в нем оформляется ответ от базы, есть ли у него какая-то сущность, которая четко идентифицирует один запрос?
-
Давай все с начала. Представь, что меня до этого здесь не было и я не обзывал тебя пять раз В чем суть проблемы, объясни досканально, а не как ты обычно объсняешь — «не работает!!!».
-
Ты пробовал их ЧИТАТЬ? Всю жизнь с протянутой рукой? Если ты один раз приходишь и говоришь «дай мне рыбу!», я дам тебе рыбу. Когда ты придешь во второй, я наверное тоже дам тебе рыбу. Но если ты каждый день ходишь и просишь рыбы, проще научить тебя рыбачить. Согласен? Нельзя изо дня в день ходить на форум и через год быть таким-же тупым, как в самом начале. Тут ты прав, но дело не в этом. Если человек читает, думает над прочитанным, он впитывает знания. Если он по форумам шатается и на примерах из сети все делает, он так и останется дебилом. С этой точки зрения, без разницы, есть ли там ООП. Потом можно будет просто другую книжку взять.
-
> ... у меня лежат книжки по php 4,5. Ну я так и думал, что лежат.
-
Дима, там еще было, пропустил нет, это не задача. Перевести блог на ООП — это не задача. Задача - сделать удобный доступ к базе, работу с результатом как а массивом, автоматическое использование нужного соединениея. это похоже на задачу. vvsh, давай честно, ты пробовал читать книжки? Ты в жизни хоть одну книгу по теме прочел? Хоть какой-нибудь материал по php и mysql ? Или все из форумов почерпнул? Не будешь читать книжки — так и вырастишь дебилом.
-
Как нибудь! в этом и суть программирования, у тебя есть задача, ты должен составить алгоритм, который би приводил к решению это задачи, а потом самая малость — записать на известном тебе языке. Думай, думай, думай. Включай мозг. Подумай, как оно работает сейчас. Как ты бы хотел чтобы оно работало. Какие цели ты достигаешь используя те или иные средства. Ты используешь ООП, это средство. у тебя есть цель которую ты достигаешь, используя это средство? Или ты как обычно хочешь выучить еще одно слово? Ставь задачи, пиши алгоритмы, и все время думай. Помоему это НЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯя, по английски.
-
А че, sic, последовательность не заданная?
-
И это ничего не гарантирует, просто в большинстве случаев, возможно, поможет.
-
НЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ, у тебя идет вызов: $this->query("SELECT * FROM table"); После него у тебя $this->row() и $this->num() будут возвращать строку и количество строк последнего запроса. А потом у тебя идет вызов: $this->query("SELECT * FROM table2 WHERE field2 = '$row[field]'"); и после него $this->row() и $this->num() тоже будут возвращать строку и количество строк последнего запроса. Последнего, блядь, последнего!!!
-
Да. И что, это тебя вообще никак не наталкивает на мысли, почему у тебя лажа выходит? Я же не спросил, что они делают, я спросил что с ними будет после указанной строчки. Вообще никаких ассоциаций? Поспешил ответить на мои вопросы? Я расчитывал может у тебя у самого искорка зажжется, ты поймешь что не так. Ответ же, блин прямо написан, нужно только глаза открыть, мозг даже включать не надо, все тут рефлекторно должен получится. А у тебя никаких ассоциаций, никаких решений, не единого проблеска. Ты идиот, бросай это дело, из тебя вообще ничего путнего не получится
-
Здесь. Как ты считаешь, что должно стать с $this->query_id и что после этого должен вернуть следующий вызов $this->row().
-
Каюсь, знакомый. Только это не попап. Поищите какой-нибудь блокировщик рекламы на http://operawiki.info/
-
CSS: неверное приклеивание к границам экрана при position:relative;
homm replied to sergey_lans's question in HTML Coding
Меню «как на этом» вполне себе чудовищно. У тебя уже лучше. -
Владимир Шелгунов, ты еще так молод. Ты нахватался умных слов, значения которых не понимаешь и другим объяснить не можеш.
-
ctrl+f12 — укажите как поступать с всплывающими окнами. Для конкретного сайта: правой кнопкой — настройки для сайта — всплывающие. Как можно было это не найти…
-
Ну прости, не тестировал. Домашнее задание — добавить перенос строк в конце.
-
CSS: неверное приклеивание к границам экрана при position:relative;
homm replied to sergey_lans's question in HTML Coding
Только нужно это написать не здесь, а на соответствующей странице. -
CSS: неверное приклеивание к границам экрана при position:relative;
homm replied to sergey_lans's question in HTML Coding
я что-то не понял. Ты сейчас написал какие-то слава от себя и считаешь это докозательнством? Я бог!! Му-ха-ха! Видишшь, я бог Будешь спорить — еще раз себя процетирую. -
На главной у вас написано «Рождественское послание Владыки Анастасия · 05-01-09» а внутри «5 января 2009». Как вы думаете, какой вариант нужно использовать в обоих местах? Вообше по всему сайту даты бесяче поставленны. Только кое-где нормально. Там же: http://pravbrat.ru/news/christmas2009-epistle «Епископъ Анастасiй» Я так понимаю, раз статья за январь года сего, человек этот реален и наш с вами современник, живет в России и соответственно имя у него может быть только современными русскими буквами. Не стоит комплексовать по поводу того, что церковь имела влияние только в средние века и стараться делать вид, что ничего не изменилось. «Ваш браузер устарел. Пожалуйста, обновите его.» я могу понять, почему люди так пишут. Даже с учетом того, что 90% посетителей не знает что такое браузер и как его обновить. Но зачем контент то прятать? Над вами пользователи ие6 в дествтве издевались? Кстати, в ие7 все тоже плохо, хотя этот браузер не устарел. «Материалов пока нет» ну и уберите этот пункт меню с глаз долой, пока материалы не появятся.
-
вот код, делающий аналогичные действия: 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); } Файл после тебя пушкин будет закрывать? Ты разве не сам ответил на свой вопрос? Тебе нужен замененный перенос! Вот и заменяй. Как логично, правда?
-
Если вам кажется, что какие-то файлы могут у пользователя закешироваться, делайте на них ссылку вида style.css?20090307 с датой последнего изменения. И в опере Ctrl+F5 совсем для другого. а вообще пользователь не должен знать ни о каких кнопках, у него может быть КПК со стилусом, тем более осквернять такой тематический сайт техническими деталями как-то нелогично.