Torawhite
User-
Posts
204 -
Joined
-
Last visited
Content Type
Profiles
Forums
Calendar
Store
Everything posted by Torawhite
-
Здравствуйте! В БД дата в ячейке типа DATE устанавливается в виде yyyy-mm-dd. Мне нужно её вывести двумя способами: 1 - в обратном порядке dd-mm-yyyy; 2 - чтобы месяц прописывался кириллицей (5 апреля 2015). Есть какая-то функция, которая может обработать значение массива, в котором содержится дата или какой-нибудь рабочий способ?
-
Спасибо! Нашёл такой вариант: $var = 'magazine';// Если в начале исходной строки встретилось 'magazine'if (strpos($var, 'magazine') === 0) {// Добавить класс}
-
Здравствуйте! Не знаю, можно ли так сделать: Необходимо, чтобы в условии шла проверка только начального слова. Например, $var = 'magazine%'; Вместо % может идти что угодно, как, например в поиске оператором like ставится % в начале и в конце, что означает, перед запроса и после запроса может идти что угодно. Так и мне нужно если значение переменной начинается с определённого слова, то выполнять действие. Нужно для подсветки раздела на стороне сервера (добавлять класс).
-
Разобрался $category = $_GET['category'];Не думал, что так важно, как оказалось...
-
Так функция работает (убрал получение параметра и вписал значение принудительно): function article_block(){try {$dsn = sprintf('mysql:host=%s;dbname=%s;charset=utf8', HOST, DB);$pdo = new PDO($dsn, USER, PASS);$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);}catch (PDOException $e) {echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();exit;}$sql = 'SELECT article_id, article_cat_id, article_par_id, article_title, article_img, article_author, article_author_card, article_description, article_date, article_views FROM articles WHERE article_cat_id = :catUNIONSELECT article_id, article_cat_id, article_par_id, article_title, article_img, article_author, article_author_card, article_description, article_date, article_views FROM articles WHERE article_cat_id IN(SELECT cat_id FROM magazine_left_sidebar WHERE parent_id = :cat) ORDER BY article_id DESC';$data = $pdo->prepare($sql);$data->bindValue(':cat', 1);$data->execute();$article_block = $data->fetchAll(PDO::FETCH_ASSOC);return $article_block;}Так не работает: function article_block($category){try {$dsn = sprintf('mysql:host=%s;dbname=%s;charset=utf8', HOST, DB);$pdo = new PDO($dsn, USER, PASS);$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);}catch (PDOException $e) {echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();exit;}$sql = 'SELECT article_id, article_cat_id, article_par_id, article_title, article_img, article_author, article_author_card, article_description, article_date, article_views FROM articles WHERE article_cat_id = :catUNIONSELECT article_id, article_cat_id, article_par_id, article_title, article_img, article_author, article_author_card, article_description, article_date, article_views FROM articles WHERE article_cat_id IN(SELECT cat_id FROM magazine_left_sidebar WHERE parent_id = :cat) ORDER BY article_id DESC';$data = $pdo->prepare($sql);$data->bindValue(':cat', (int)$category, PDO::PARAM_INT);$data->execute();$article_block = $data->fetchAll(PDO::FETCH_ASSOC);return $article_block;}
-
Спасибо. Не знаю, правильно ли, но так тоже не работает: $sql = 'SELECT article_id, article_cat_id, article_par_id, article_title, article_img, article_author, article_author_card, article_description, article_date, article_views FROM articles WHERE article_cat_id = ?UNIONSELECT article_id, article_cat_id, article_par_id, article_title, article_img, article_author, article_author_card, article_description, article_date, article_views FROM articles WHERE article_cat_id IN(SELECT cat_id FROM magazine_left_sidebar WHERE parent_id = ?) ORDER BY article_id DESC';$data = $pdo->prepare($sql);$data->execute(array($category, $category));$article_block = $data->fetchAll(PDO::FETCH_ASSOC);return $article_block;
-
Здравствуйте! Функция получает параметр через адресную строку и делает выборку из БД. Если запрос ввожу с конкретными цифрами в phpmyadmin, то запрос выводит то, что нужно. А функция возвращает пустой массив: function article_block($category){try {$dsn = sprintf('mysql:host=%s;dbname=%s;charset=utf8', HOST, DB);$pdo = new PDO($dsn, USER, PASS);$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);}catch (PDOException $e) {echo "<p>Запрос на выборку данных из бызы не прошёл. Напишите об этом администратору <a href='mailto:admin@torawhite.ru'>admin@torawhite.ru</a>.</p><br>ERROR: " . $e->getMessage();exit;}$sql = '(SELECT article_id, article_cat_id, article_par_id, article_title, article_img, article_author, article_author_card, article_description, article_date, article_views FROM articles WHERE article_cat_id = :cat)UNION(SELECT article_id, article_cat_id, article_par_id, article_title, article_img, article_author, article_author_card, article_description, article_date, article_views FROM articles WHERE article_cat_id IN(SELECT cat_id FROM magazine_left_sidebar WHERE parent_id = :cat))';$data = $pdo->prepare($sql);$data->bindValue (':cat', $category);$data->execute();$article_block = $data->fetchAll(PDO::FETCH_ASSOC);return $article_block;}Не могу понять, в чём дело... Так заработало, но некорректно - возвращает всегда один и тот же массив, независимо от значения параметра $data->bindValue (':cat', $category);
-
display: inline с padding на следующей строке
Torawhite replied to Torawhite's question in HTML Coding
Да, похоже на панацею! Спасибо большое! Правда код перешёл в разряд совсем мистических -
display: inline с padding на следующей строке
Torawhite replied to Torawhite's question in HTML Coding
Определённо есть какая-то зависимость от line-height. Какое-то значение делает углы ровными, а какое-то - рваными Только на "лисе" почему-то...safari тоже капризничает... -
display: inline с padding на следующей строке
Torawhite replied to Torawhite's question in HTML Coding
Так работает, но какие-то нижние углы "рваные" -
display: inline с padding на следующей строке
Torawhite replied to Torawhite's question in HTML Coding
Рыжая лиса не принимает -
display: inline с padding на следующей строке
Torawhite replied to Torawhite's question in HTML Coding
Спасибо! Вариант с outline хорош. Но он устанавливает равномерную толщину по всему периметру, а как быть, если сверху и снизу не требуется? outline некорректно отображается в chrome, а вариант со смещением блоков не годятся для прозрачности фона. Спасибо, но не то пальто... -
Здравствуйте! Необходимо залить фон текста по его ширине каждой отдельной строки. То есть, есть у меня заголовок в блоке, который не влезает по ширине, часть заголовка переносится на следующую строку. Но необходимо, чтобы заливка была только по ширине текста а не по ширине всего блока, по типу выделения текста курсора. Как это сделать я разобрался - display: inline. Только есть одна проблема - padding. Он установлен слева и справа, вот только вторая и последующие строки его не имеют, так как это единая строка и отступ будет только вначале и в конце. Можно как-то сделать, чтобы отступ был и на следующих строках. Понять сложно, поэтому прилагаю иллюстрацию
-
Проблема-то не в этом) да нет, там 6 передано ) А цикл можно как-то запустить? Сделал! Разорвал html-код в том месте, где нужно запустить цикл, вывел так: foreach ($pages as $page){printf(первая часть html-кода);$tags = explode("/", $page["tags"]);foreach ($tags AS $tag) {echo "<a href='/search_view.php?submit=&select=tag&query=" . $tag . "' title='Поиск по тегу'>" . $tag . "</a>";}printf(вторая часть html-кода);}
-
Проблема-то не в этом) да нет, там 6 передано ) А цикл можно как-то запустить?
-
Здравствуйте! Необходимо запустить вывод тегов (отдельных слов) внутри printf(). Теги хранятся в отдельной ячейке и разделены "/". Так идёт вывод сейчас: foreach ($pages AS $page) { printf(" <div class='article_block'> <a href='/view_article.php?id=%s' target='_self' title='%s' class='pre_img'><img src='%s' width='640'></a> <div class='tags_block'>%s</div> <div class='article_block_name'> <p><a href='/magazine/male_articles/view_article.php?id=%s' target='_self'>%s</a></p></div></div>", $page["id"], $page["title"], $page["article_img"], $page["tags"], $page["id"], $page["title"]); }Нужно в <div class='tags_block'>%s</div> вместо "%s" выводить каждое слово тега в теге <a href"..." class="..."></a> через explode()
-
Да! Так работает! Спасибо огромное!
-
Спасибо, что ответили.Но не работает почему-то. Как только не пробовал. Может, со списком у меня что-то не так...
-
Здравствуйте! Есть скрипт подсветки раздела - добавляет класс родительскому элементу. Работает даже при передаче в адресной строке GET-параметров и с учётом вложенности каталога. НО! У меня есть каталог /magazine/male_articles/ а есть вложенные каталоги, например /magazine/male_articles/some_category/. Когда переходишь в категорию, то класс добавляется и текущему разделу, и общему разделу /magazine/male_articles/, то бишь этот раздел главный, а остальные - вложенные и, так как он присутствует в адресе каждой вложенной ссылки, то и подсвечивается постоянно. Как можно убрать с него подсветку при выборе подкатегорий? Сам скрипт: $(function () {$('.magazine_nav ul li a').each(function () {var location = window.location.hrefvar link = this.hrefvar result = location.match(link);if(result != null) this.parentNode.className = "active_article";});});
-
Да, вы правы. Нужно (int) поставить перед переменной в bindValu. Спасибо
-
Здравствуйте! Пытаюсь реализовать постраничную навигацию. Проблема встала в выдаче следующей ошибки "ERROR: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''5',5' at line 1" Сам запрос, в котором сервер видит ошибку: $stmt = $pdo->prepare('SELECT * FROM male_articles ORDER BY id DESC LIMIT :offset,:limit');$stmt->bindValue(':limit', $count, PDO::PARAM_INT);$stmt->bindValue(':offset', $start, PDO::PARAM_INT);$stmt->execute();$pages = $stmt->fetchAll(PDO::FETCH_ASSOC);Пробовал и так, как выше, и так: $stmt = $pdo->prepare('SELECT * FROM male_articles ORDER BY id DESC LIMIT :limit OFFSET :offset');$stmt->bindValue(':limit', $count, PDO::PARAM_INT);$stmt->bindValue(':offset', $start, PDO::PARAM_INT);$stmt->execute();$pages = $stmt->fetchAll(PDO::FETCH_ASSOC);Судя по выводу цифр в ошибке, переменные туда попадают. Не могу понять, чем не нравится такой запрос серверу...
-
не то что моветон, но вы же вот сами пришли почти к моему решению: только не нужно в тегах пихать, а explode работает очень шустро, просто для этого поля сделайте индекс и все. а сфинкс сюда еще прикручивать это как стрелять из пушки по воробьям. Спасибо! Буду пробовать!
-
Вот это запрос! А про explode написал так как мне нужно ещё каждое слово выводить в теге <a>. Я тут подумал, а зачем все эти танцы с бубном! Можно создать отдельный столбец в таблице со статьями, скажем tags и запихивать туда теги в теге <a>, например, <a href="/tag_search_view.php?query=Some_tag" class="tag_link">Some_tag</a> за ним следующий и так далее. Будет много статей и упадёт скорость поиска, тогда можно Sphinx прикрутить. Тогда никакого дополнительного цикла не нежно, таблиц и сложных запросов. Или это совсем будет моветон?
-
в общем то да, так и есть. я когда-то делал так: у статьи к примеру есть поле с мета-кейвордс, в котором через запятую перечисляю ключевики и они же являются в принципе и тегами. когда в урл попадает тег-ключевик, то на странице этого урл-а составляем запрос к бд: if(!empty($_GET['tag'])) { SELECT * FROM `pages` WHERE `meta_k` LIKE '%".$_GET['tag']."%' } ну типа того в общем... Этот метод мне понятен, но там нужно будет применять explode() и убивать запятые. Я хотел так делать, но, почитав форумы, люди пишут, что классика и наиболее оптимальный вариант - реализация с помощью трёх таблиц. То есть: таблица статей с полями id, title,text и прочее; таблица тегов с полями id и name; и таблица где мы сводим id статьи с id тега - tag_id и article_id. Но я не могу понять, как в таком случае формировать запрос к базе. Тем более, что у одной статьи может быть несколько тегов. А у меня ещё и три таблицы со статьями((( Как формировать такой запрос я так и не нашёл, вот и прошу помочь. Простой-то запрос я сформировать могу, например к таблице со сведением ag_id и article_id, но там только цифры. Тут как-то двумя запросами делать нужно что ли...
-
Здравствуйте! Интересует вопрос создания системы тегов для статей на php. Погуглил и пришёл к выводу, что помимо таблицы со статьями, необходимо создать таблицу с тегами и таблицу связей тег-статья - классическая схема. Но мне не совсем понятен алгоритм вывода тегов. У меня на сайте статья выводятся блоками циклом do {printf()} while (что-то попадает в массив)То есть мне нужно запустить ещё один цикл внутри printf()? Не совсем понимаю алгоритм вывода и сам код. + поиск. У меня реализован поиск с помощью оператора Like. А как реализуется поиск по конкретному тегу. Мы на него кликаем, а ссылка ведёт на обработчик и передаёт переменную с названием тега в адресной строке? Не совсем понимаю алгоритм работы с тремя таблицами. Разъясните, пожалуйста, если у кого-то есть терпение!)