PHP.SU

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

Страниц (20): В начало « ... 12 13 14 15 16 17 [18] 19 20 »

> Найдено сообщений: 298
Deonis Отправлено: 24 Февраля, 2012 - 11:19:15 • Тема: Получит первей уровни дерева каталога массивом • Форум: Вопросы новичков

Ответов: 6
Просмотров: 283
DelphinPRO пишет:
PHP:
скопировать код в буфер обмена
  1. if($arrCats[0][1] == 0){
  2.      return $arrCats;
  3. } else {
  4.      return tree($arrCats);
  5. }


DelphinPRO, большое спасибо. Ночь без сна, а мог бы догадаться )) Тему можно закрывать.
Deonis Отправлено: 24 Февраля, 2012 - 11:04:54 • Тема: Получит первей уровни дерева каталога массивом • Форум: Вопросы новичков

Ответов: 6
Просмотров: 283
Dezmont пишет:
return $arrCats вернёт вам всё что надо

Нет сил спорить. Измените print_r($arrCats); на return $arrCats; запустите скрипт и увидите - есть разница или нет - находимся мы "в какой глубине" или мы всё-таки находимся в глубине рекурсивного стека .
Deonis Отправлено: 24 Февраля, 2012 - 10:26:28 • Тема: Получит первей уровни дерева каталога массивом • Форум: Вопросы новичков

Ответов: 6
Просмотров: 283
Okula пишет:
return $arrCats; и всё вернёт.

В том то и дело, что в этот момент мы будетем в глубине рекурсивного стека. Поэтому return $arrCats; ни к чему не приведёт.
Deonis Отправлено: 24 Февраля, 2012 - 09:04:58 • Тема: Получит первей уровни дерева каталога массивом • Форум: Вопросы новичков

Ответов: 6
Просмотров: 283
Доброго времени суток! Простая, казалось бы, задача, но поставила в тупик Недовольство, огорчение
Собственно вот в чем дело. (упростил всё до минимума)
Есть массив двух первых уровней каталога:
PHP:
скопировать код в буфер обмена
  1. $cats = array(
  2.         array(1,0, 'cat_1'), // array(id, parent_id, 'cat_title')
  3.         array(2,1, 'cat_1.1'),
  4.         array(3,1, 'cat_1.2'),
  5.         array(4,1, 'cat_1.3'),
  6.         array(5,0, 'cat_1'),
  7.         array(6,5,'cat_2.1'),
  8.         array(7,5,'cat_2.2'),
  9.         array(8,0,'cat_3'),
  10.         array(9,8,'cat_3.1')
  11. );


Получаем массив третьего уровня каталога:
PHP:
скопировать код в буфер обмена
  1. $lvl3 = array(
  2.         array(100,4,'some_cat1'), // array(id, parent_id, 'cat_title')
  3.         array(101,9,'some_cat2')
  4. );


Задача - получить массив только первых уровней каталога отталкиваясь от значений parent_id третьего массива
Пробую делать так:
PHP:
скопировать код в буфер обмена
  1. function tree($lines){
  2.         global $cats;
  3.         $arrCats = array();
  4.         for($i = 0; $i < count($lines); $i++){
  5.                 foreach($cats as $key => $val){
  6.                         if($val[0] == $lines[$i][1]){
  7.                                 $arrCats[] = $val;
  8.                         }                      
  9.                 }
  10.         }
  11.         if($arrCats[0][1] == 0){
  12.                 print_r($arrCats); /* Это - тот самый уровень! Распечатать его можно, но вернуть этот массив не получается. */
  13.         } else {
  14.                 tree($arrCats);
  15.         }      
  16. }
  17. $firstLvl = tree($lvl3); // Вызываем рекурсивную функцию
  18.  

Как вернуть этот самый массив в переменную $firstLvl?
Буду признателен за помощь.

P.S. Сори за опечатку в названии темы, уже более 12-ти часов сижу над этой проблемой, мозг кипит.
Deonis Отправлено: 18 Января, 2012 - 16:29:20 • Тема: Анимированный калькулятор/счетчик (jQuery, JS) • Форум: JavaScript & VBScript

Ответов: 11
Просмотров: 3744
DlTA, не удачный вариант. Если вывести каждое прибавляемое значение, то вы увидите в чем проблема. Ваш код в действии, (отметьте "Запорожец").
Но всё равно спасибо. И всем спасибо за участие. Вопрос можно закрывать.
Deonis Отправлено: 17 Января, 2012 - 11:48:32 • Тема: Анимированный калькулятор/счетчик (jQuery, JS) • Форум: JavaScript & VBScript

Ответов: 11
Просмотров: 3744
IllusionMH пишет:
вот вариант, в котором сначала единицы приводятся до нужного значения, потом десятки, сотни и т.д.

Спасибо, как вариант рассмотрю ;) Только эффект действительно ощутим не только на маленьких числах, но и с числами в которых преолбладают "0" - прокручиваться нечему ))
Deonis Отправлено: 16 Января, 2012 - 18:03:43 • Тема: Анимированный калькулятор/счетчик (jQuery, JS) • Форум: JavaScript & VBScript

Ответов: 11
Просмотров: 3744
LIME пишет:
а можно прибавлять какое-то число в зависимости от суммы прибавления

IllusionMH пишет:
Deonis, а может стоит отдельно прибавлять единицы, десятки, сотни, тысячи?

Именно так, господа, но как это сделать наиболее грамотно - это и есть задачка. Не хотел сразу выкладывать свой вариант решения, но вот как я это решил на данный момент - вариант решения
С круглыми числами проблем не возникало, но если, как в примере у "Запорожца", цена будет 58281, то приходиться много играться с преобразованиями чисел. И на мой взгляд это какой-то перебор. Хотя, может я ошибаюсь.
Deonis Отправлено: 16 Января, 2012 - 16:17:14 • Тема: Анимированный калькулятор/счетчик (jQuery, JS) • Форум: JavaScript & VBScript

Ответов: 11
Просмотров: 3744
Если вы посмотрите примерчик, то увидите, что при выборе определенного чекбокса, как у счетчика в такси добавляется его значение к итоговой сумме. Интервал выставлен минимальный, но даже при этом появляется маленькая проблемка. Если добавляются не большие числа, то всё проходит достаточно быстро, но если прибавляются тысячи или даже десятки тысяч, то ждать приходится долго. Надо бы ускорить этот процесс для таких сумм.
Любым способом решить эту проблему я могу, но не хочется прибегать к индуским методам. Поэтому решил спросить тех, кто может уже решал аналогичную задачу или подскажет вариант бубна, с которым надо потанцевать.
Спасибо.
Deonis Отправлено: 06 Октября, 2011 - 07:01:03 • Тема: Редирек пользователей, но не поисковых ботов • Форум: Apache и другие веб-серверы

Ответов: 2
Просмотров: 236
Здравствуйте!
Есть два сайта схожих по тематике: новый и старый, который не плохо котируется в поисковиках, но требует редизайна.
Задача перенаправлять всех пользователей на новый сайт в то время, пока сайт будет проходить модернизацию, но оставить доступ поисковым ботам.
Подскажите, как это можно реализовать? То есть, по сути надо как-то определить кто зашел - обычный пользователь или бот - и,
в зависимости от этого, перенаправить или оставить на старом сайте.
Deonis Отправлено: 27 Сентября, 2011 - 12:47:17 • Тема: Лишние кавычки в данных при импорте в базу из csv-файла • Форум: Работа с СУБД

Ответов: 2
Просмотров: 1963
EuGen пишет:
ENCLOSED BY '"'

Я пробовал, но в ответ ничего не происходит, даже ошибку не выдаёт
запрос изначально делал так:
PHP:
скопировать код в буфер обмена
  1. $query = "LOAD DATA LOCAL INFILE 'data.csv' INTO TABLE `tbl` FIELDS TERMINATED BY ';' ENCLOSED BY '\"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n'";

Может быть синтаксис не правильный? Могу предположить, что из-за экранирования (ENCLOSED BY '\"'), но без него уже точно ругаться будет.
Deonis Отправлено: 27 Сентября, 2011 - 10:55:42 • Тема: Лишние кавычки в данных при импорте в базу из csv-файла • Форум: Работа с СУБД

Ответов: 2
Просмотров: 1963
Здравствуйте! Есть проблемка...
При импорте данных из файла в MySQL, добавляются двойные кавычки к уже существующим
К примеру:
файл data.csv
1;Masha
2;Pasha
3;"Putin"

Запрос:
PHP:
скопировать код в буфер обмена
  1. $query = "LOAD DATA LOCAL INFILE 'data.csv' REPLACE INTO TABLE `tbl_name` FIELDS TERMINATED BY ';' LINES TERMINATED BY '\r\n'";


В базе получаем
1 Masha
2 Pasha
3 """Putin""" - не есть хорошо

Как можно избавиться от лишних автоматически добавляемых кавычек к уже существующим в данных?
Deonis Отправлено: 24 Мая, 2011 - 23:29:32 • Тема: Кириллица в ASCII и алфавитный список • Форум: Кодировки и все смежное

Ответов: 1
Просмотров: 6403
В своё время делал алфавитный список с дальнейшим внесением в базу ASCII-кода букв. Выглядело это так:
PHP:
скопировать код в буфер обмена
  1. echo "<select>";
  2. for($i=65;$i<=90;$i++){
  3.         echo "<option value='".$i."'>".chr($i)." </option>";
  4. }
  5. echo "</select>";

Тут всё просто, т.к. использовались латинские буквы. Сейчас мне надо сделать тоже самое, но с кириллицей. Но сложность в том, что символы в выпадающем списке отображаются не правильно (сайт в кодировке UTF-8, в .htaccess строка "AddDefaultCharset UTF-8"). Найденный выход, кроме как индуским, не назовёшь:
PHP:
скопировать код в буфер обмена
  1. echo "<select>";
  2. for($i=192;$i<=223;$i++){
  3.         echo "<option value='".$i."'>".iconv("CP1251", "UTF-8",chr($i))."</option>";
  4. }
  5. echo "</select>";

Всегда старался избегать iconv(), но пока на ум только эта функция приходит. Если кто сталкивался с проблемой такой кодировки, то буду рад выслушать ваши варианты.
Deonis Отправлено: 20 Мая, 2011 - 13:36:06 • Тема: Не получается выбрать элемент внутри родительского jQuery • Форум: JavaScript & VBScript

Ответов: 0
Просмотров: 1197
jQuery только начал изучать, посему не обессудьте. Задача сделать эффект "раскрывающихся дверей электрички" при наведении курсора на объект.
Рабочий вариант , который у меня получился, содержит два отслеживания события:
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.      $('.but_exter').hover(
  3.          function(){
  4.              $(this).stop(1);
  5.              $(this).animate({'background-position':'200px'},750);
  6.          },
  7.          function(){
  8.              $(this).stop(1);
  9.              $(this).animate({'background-position':'100px'},300);
  10.          }
  11.      );
  12.      $('.but_exter > div').hover(
  13.          function(){
  14.              $(this).stop(1);
  15.              $(this).animate({'background-position':'-200px'},750);
  16.          },
  17.          function(){
  18.              $(this).stop(1);
  19.              $(this).animate({'background-position':'-100px'},300);
  20.          }
  21.      );
  22.  });


Но изначально, я пытался сделать две операции, в одном блоке кода:
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.         $('.but_exter').hover(
  3.                 function(){
  4.                         $(this).stop(1);
  5.                         $(this).animate({'background-position':'200px'},750);
  6.                         $(this + " > div").stop(1);
  7.                         $(this + " > div").animate({'background-position':'-200px'},750);
  8.                 },
  9.                 function(){
  10.                         $(this).stop(1);
  11.                         $(this).animate({'background-position':'100px'},300);
  12.                         $(this + " > div").stop(1);
  13.                         $(this + " > div").animate({'background-position':'-100px'},300);
  14.                 }
  15.         );
  16. });

Однако, работать не захотело. Подскажите пожалуйста, в чем может быть загвоздка?
P.S. Перейдя по ссылке можно увидеть HTML, CSS, jQuery, которые я использую
(Добавление)
Упс! Вопрос можно закрыть, уже нашел ответ )) Пару дней как начал разбираться, поэтому не знал что нужно дочерний элемент выбирать так children([expr]). В итоге получил следующий код:
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.   $('.but_exter').hover(
  3.     function(){
  4.       $(this).stop(1);
  5.       $(this).animate({'background-position':'200px'},750);
  6.       $(this).children('div').stop(1);
  7.       $(this).children('div').animate({'background-position':'-200px'},750);
  8.     },
  9.     function(){
  10.       $(this).stop(1);
  11.       $(this).animate({'background-position':'100px'},300);
  12.       $(this).children('div').stop(1);
  13.       $(this).children('div').animate({'background-position':'-100px'},300);
  14.     }
  15.   );
  16. });


И второй более короткий вариант, если вдруг кому-то понадобится:
CODE (javascript):
скопировать код в буфер обмена
  1. $(document).ready(function(){
  2.   $('.but_exter').hover(
  3.     function(){
  4.       $(this).stop(1).animate({'background-position':'200px'},750);
  5.       $("div",this).stop(1).animate({'background-position':'-200px'},750);
  6.     },
  7.     function(){
  8.       $(this).stop(1).animate({'background-position':'100px'},300);
  9.       $("div",this).stop(1).animate({'background-position':'-100px'},300);
  10.     }
  11.   );
  12. });
Deonis Отправлено: 19 Мая, 2011 - 09:27:28 • Тема: Разделение слова на части • Форум: Регулярные выражения

Ответов: 11
Просмотров: 1000
grefon пишет:
О майн гаД!!! Вы серьезно?

Более чем
grefon пишет:
А тройку на 5 поменять не догадались?

Не поверите, но синтаксис функции str_split знаю хорошо

Уже потом понял, что короткое слово в примере не лучший вариант.
И чтоб покончить с str_split, попробуйте именно с её помощью разделить "alkogolizm" на две части: "alko" и "golizm"
Повторюсь, что я не особо надеялся, что функция, которая могла бы облегчить мою задачу существует. Я её мог бы представить, как что-то в этом роде
some_func($str,$part,$num_chars);
Где $str - обрабатываемое слово, $part - на сколько частей делить, $num_chars - количество символов в частях, кроме остатка (в него попадёт о 0 до ~ символов)
Тогда это выглядело бы так:
some_func("охзаморочилтывсех",3,2);
На выходе мог бы быть массив "ох, за, морочилтывсех"

DeepVarvar пишет:
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. preg_match("#^(\w{4})(\w{5})$#is","vovaputin",$out);
  3. print_r($out);
  4. ?>

Регулярка - как вариант. Надо будет потестить. Там задача не очень стандартная. Описать в двух словах не получится, а сочинение писать влом. Подмигивание

EuGen пишет:
grefon
Как я понял, автору нужно решить задачу .....

Вы правильно поняли Подмигивание Спс.

Всем большое спасибо, что потратили на меня время!
Deonis Отправлено: 18 Мая, 2011 - 22:50:06 • Тема: Разделение слова на части • Форум: Регулярные выражения

Ответов: 11
Просмотров: 1000
grefon пишет:


Пардон, но вы что-то упустли. В вашем примере получаем:
Array
(
[0] => put
[1] => inv
[2] => ova
)
но никак не
Array
(
[0] => putin
[1] => vova
)
Ладно, закроем тему. Я не особо надеялся, что подобные функции существуют. Способы решения есть, пусть и не очень удобные. Всё равно, спасибо за внимание.

Страниц (20): В начало « ... 12 13 14 15 16 17 [18] 19 20 »
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB