Jump to content

Torawhite

User
  • Posts

    204
  • Joined

  • Last visited

Everything posted by Torawhite

  1. Здравствуйте! В БД дата в ячейке типа DATE устанавливается в виде yyyy-mm-dd. Мне нужно её вывести двумя способами: 1 - в обратном порядке dd-mm-yyyy; 2 - чтобы месяц прописывался кириллицей (5 апреля 2015). Есть какая-то функция, которая может обработать значение массива, в котором содержится дата или какой-нибудь рабочий способ?
  2. Спасибо! Нашёл такой вариант: $var = 'magazine';// Если в начале исходной строки встретилось 'magazine'if (strpos($var, 'magazine') === 0) {// Добавить класс}
  3. Здравствуйте! Не знаю, можно ли так сделать: Необходимо, чтобы в условии шла проверка только начального слова. Например, $var = 'magazine%'; Вместо % может идти что угодно, как, например в поиске оператором like ставится % в начале и в конце, что означает, перед запроса и после запроса может идти что угодно. Так и мне нужно если значение переменной начинается с определённого слова, то выполнять действие. Нужно для подсветки раздела на стороне сервера (добавлять класс).
  4. Разобрался $category = $_GET['category'];Не думал, что так важно, как оказалось...
  5. Так функция работает (убрал получение параметра и вписал значение принудительно): 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;}
  6. Спасибо. Не знаю, правильно ли, но так тоже не работает: $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;
  7. Здравствуйте! Функция получает параметр через адресную строку и делает выборку из БД. Если запрос ввожу с конкретными цифрами в 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);
  8. Да, похоже на панацею! Спасибо большое! Правда код перешёл в разряд совсем мистических
  9. Определённо есть какая-то зависимость от line-height. Какое-то значение делает углы ровными, а какое-то - рваными Только на "лисе" почему-то...safari тоже капризничает...
  10. Так работает, но какие-то нижние углы "рваные"
  11. Спасибо! Вариант с outline хорош. Но он устанавливает равномерную толщину по всему периметру, а как быть, если сверху и снизу не требуется? outline некорректно отображается в chrome, а вариант со смещением блоков не годятся для прозрачности фона. Спасибо, но не то пальто...
  12. Здравствуйте! Необходимо залить фон текста по его ширине каждой отдельной строки. То есть, есть у меня заголовок в блоке, который не влезает по ширине, часть заголовка переносится на следующую строку. Но необходимо, чтобы заливка была только по ширине текста а не по ширине всего блока, по типу выделения текста курсора. Как это сделать я разобрался - display: inline. Только есть одна проблема - padding. Он установлен слева и справа, вот только вторая и последующие строки его не имеют, так как это единая строка и отступ будет только вначале и в конце. Можно как-то сделать, чтобы отступ был и на следующих строках. Понять сложно, поэтому прилагаю иллюстрацию
  13. Проблема-то не в этом) да нет, там 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-кода);}
  14. Проблема-то не в этом) да нет, там 6 передано ) А цикл можно как-то запустить?
  15. Здравствуйте! Необходимо запустить вывод тегов (отдельных слов) внутри 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()
  16. Да! Так работает! Спасибо огромное!
  17. Спасибо, что ответили.Но не работает почему-то. Как только не пробовал. Может, со списком у меня что-то не так...
  18. Здравствуйте! Есть скрипт подсветки раздела - добавляет класс родительскому элементу. Работает даже при передаче в адресной строке 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";});});
  19. Да, вы правы. Нужно (int) поставить перед переменной в bindValu. Спасибо
  20. Здравствуйте! Пытаюсь реализовать постраничную навигацию. Проблема встала в выдаче следующей ошибки "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);Судя по выводу цифр в ошибке, переменные туда попадают. Не могу понять, чем не нравится такой запрос серверу...
  21. не то что моветон, но вы же вот сами пришли почти к моему решению: только не нужно в тегах пихать, а explode работает очень шустро, просто для этого поля сделайте индекс и все. а сфинкс сюда еще прикручивать это как стрелять из пушки по воробьям. Спасибо! Буду пробовать!
  22. Вот это запрос! А про explode написал так как мне нужно ещё каждое слово выводить в теге <a>. Я тут подумал, а зачем все эти танцы с бубном! Можно создать отдельный столбец в таблице со статьями, скажем tags и запихивать туда теги в теге <a>, например, <a href="/tag_search_view.php?query=Some_tag" class="tag_link">Some_tag</a> за ним следующий и так далее. Будет много статей и упадёт скорость поиска, тогда можно Sphinx прикрутить. Тогда никакого дополнительного цикла не нежно, таблиц и сложных запросов. Или это совсем будет моветон?
  23. в общем то да, так и есть. я когда-то делал так: у статьи к примеру есть поле с мета-кейвордс, в котором через запятую перечисляю ключевики и они же являются в принципе и тегами. когда в урл попадает тег-ключевик, то на странице этого урл-а составляем запрос к бд: 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, но там только цифры. Тут как-то двумя запросами делать нужно что ли...
  24. Здравствуйте! Интересует вопрос создания системы тегов для статей на php. Погуглил и пришёл к выводу, что помимо таблицы со статьями, необходимо создать таблицу с тегами и таблицу связей тег-статья - классическая схема. Но мне не совсем понятен алгоритм вывода тегов. У меня на сайте статья выводятся блоками циклом do {printf()} while (что-то попадает в массив)То есть мне нужно запустить ещё один цикл внутри printf()? Не совсем понимаю алгоритм вывода и сам код. + поиск. У меня реализован поиск с помощью оператора Like. А как реализуется поиск по конкретному тегу. Мы на него кликаем, а ссылка ведёт на обработчик и передаёт переменную с названием тега в адресной строке? Не совсем понимаю алгоритм работы с тремя таблицами. Разъясните, пожалуйста, если у кого-то есть терпение!)
×
×
  • 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