Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 |
NecroFilin - Вс 12 Июн, 2011 20:47 |
Zolcts писал(а): сути это не меняет меняте... если "не запрашиваем" - то данные не передаються, а если "не читаем" - данные пердаються, мы просто их из переменной не читаем |
НИК_как_НИК - Вс 12 Июн, 2011 21:06 |
Zolcts писал(а): это путь, куда скрипт пытается сохранить картинку. Странно в коде находил находил прямой путь сохранения этой картинки. torrents/images даже после единственной удачной загрузки картинка там реально появилась, только при вводе url этой картинки вылетала ошибка, что данная картинка содержит ошибки и не может быть открыта и скачать не получалось и редактировать или просто просмотреть даже через FTP клиент |
NecroFilin - Вс 12 Июн, 2011 21:39 |
НИК_как_НИК писал(а): только при вводе url этой картинки вылетала ошибка параметром GetImageSize являеться не урл,а локальный адрес файла на сервере |
НИК_как_НИК - Пн 13 Июн, 2011 10:19 |
Zolcts писал(а): Теперь посмотри, это путь, куда скрипт пытается сохранить картинку. вылетает 404
NecroFilin писал(а): и убери @ убрал но эффект нулевой, всё та же ошибка что это не картинка.... |
Zolcts - Пн 13 Июн, 2011 13:16 |
НИК_как_НИК писал(а): Странно в коде находил находил прямой путь сохранения этой картинки. torrents/images Угу, одна проблема - туда скрипт должен ложить картинку после проверки, картинка ли это. Для того, чтобы проверить, скрипт закачивает подсунутую картинку, ложит её по адресу временному /var/tmp/phpNSqaEn. Точнее, пытается положить. Очевидно, что скрипт не сумеет положить туда файл, ибо даже расширения нет. Далее, это будет работать только с включённым mod_tmp, что тоже не всегда, на бесплатных, например, фиг найдёшь, чтоб было включено. Но мне кажется, у тебя включено.
NecroFilin писал(а): параметром GetImageSize являеться не урл,а локальный адрес файла на сервере запилили поддержку по урл в php 4.1
НИК_как_НИК писал(а): вылетает 404 ага, и должно вылетать. Ибо это путь, а не урл. Смекаешь? |
НИК_как_НИК - Пн 13 Июн, 2011 15:51 |
Zolcts писал(а): Смекаешь кажется немного да. Короче Чтобы себе мозги в итоге не парить удалил просто эти 2 строчки, теперь буду искать bbcodes как таковой [img] работает но нет в самой панели, буду исктаь. NecroFilin, Zolcts, Спасибо большое за помощь, узнал много нового |
Zolcts - Пн 13 Июн, 2011 15:55 |
НИК_как_НИК нуу, проверку не починили.. Просто сложно угадывать, что там в коде, не видя самого кода
НИК_как_НИК писал(а): bbcodes как таковой [img] работает но нет в самой панели возьми любой, который в панели есть, скопируй да переделай на img |
НИК_как_НИК - Пн 13 Июн, 2011 16:14 |
Zolcts, мы про одну панель говорим? Я имел ввиду вставить картинку при нажатии на которую будет вылезать [img][/img] не каждый ведь юзер знает про эти коды...http://gyazo.com/6ce3cd225761fc5d937967435ee6cd17 вот в эту панель... не могу пока найти где имеено прописаны эти коды, в файле на этом месте не пойми чё, ну сам постараюсь разобраться всё таки. |
NecroFilin - Пн 13 Июн, 2011 17:30 |
НИК_как_НИК, какой движок сайта? |
Zolcts - Пн 13 Июн, 2011 18:53 |
НИК_как_НИК смотри коды яваскрипт, в них будет эта панель, там же можно будет и отредактировать их |
НИК_как_НИК - Пн 13 Июн, 2011 19:44 |
NecroFilin, TBdev, не могу найти сайт Хде скачал Zolcts, Уже нашёл яваскрипт даже называется bbcodes осталось в нём поразбираться, он в 1 строчку записан блин не удобно, есть прога которой можно это деликатно подредактировать или чтобы она сама расположила всё построчно? |
Zolcts - Вс 19 Июн, 2011 17:50 |
НИК_как_НИК писал(а): Уже нашёл яваскрипт даже называется bbcodes осталось в нём поразбираться, он в 1 строчку записан блин не удобно открой нотепадом++ и поставь галочку около "перенос строк" |
НИК_как_НИК - Вс 19 Июн, 2011 19:32 |
Zolcts, Ещё за это не брался открыл увидел что сплошником закрыл спросил у вас, забыл Спасибо всё равно |
Zolcts - Пн 20 Июн, 2011 22:09 |
Zolcts делай-делай, тут надо быть упорным
Как передать $_GET в инклюд при регистр_глобалс = офф? При включённом всё проходит, при выключенном - нет. Загнать в переменную в первом файле перед инклюдом второго - не вариант, походу, не передаётся нифига. Инклюдить include "my_file.php?do=".$_GET['var']."; только и приходит на ум мб, у меня сервак параноиком собран.. |
phoenix - Ср 22 Июн, 2011 19:03 |
Просто делаешь гет запрос filename.php?var=text, где filename.php содержит: include "my_file.php"; и в my_file.php ты можешь обращаться к $_GET['var'] и в filename.php $_GET['var'] разумеется так же будет доступен
cчитай что include просто вставляет текст из my_file.php на место include |
Zolcts - Ср 22 Июн, 2011 19:20 |
phoenix было всё так просто я же говорю, при регистр глобалс = офф этот номер не проходит. 1. Файл index.php $a = $_GET['a']; switch ($do) { case 'main' : include "my_file.php"; break; }
2. Файл my_file.php echo 'инклюд сработал'. $a;
Запрашиваем index.php?do=main&a=ok
На выводе получаем только "инклюд сработал". Естественно, стоит только включить регистр глобалс.. Кстати, если убрать "свич", то тоже работает. Пришлось отказаться от его использования. Даже больше, если в индекс написать $a = 'работает'; - то всё равно не работает. Разрушаются все переменные, определённые в индексе, всё подключённые классы, суперглобальные массивы.. А, допёр, когда пост дописал, что надо не switch ($do), а $_GET['do'].. o_O |
0печаленный - Сб 25 Июн, 2011 9:12 |
Забавную задачку подкинули. Кому интересно. Дано: игровой сервер. На одном игровом аккаунте может быть до восьми персонажей. Персонаж может быть двух рас. Расы обозначены как 0 или 1. Найти: запрос, получающий список мультирасовых аккаунтов. |
NecroFilin - Сб 25 Июн, 2011 13:39 |
0печаленный, (sum(race)-count(race))*sum(race) если не 0 то мультирасовый |
0печаленный - Сб 25 Июн, 2011 14:23 |
NecroFilin, шикарно. Я немножко по-другому сделал, надо в понедельник тестануть что лучше. Хотя в плане чистой математики твоё решение, конечно, лучше. |
NecroFilin - Сб 25 Июн, 2011 22:57 |
0печаленный, а ты как сделал? (: |
0печаленный - Вт 28 Июн, 2011 23:50 |
NecroFilin, А не скажу. Задачка должна оставаться задачкой. Кстати, тестанул твой вариант. Медленнее. Математическая красивость не выдержала столкновения с реалиями мускуля. |
NecroFilin - Ср 29 Июн, 2011 12:55 |
0печналенный, может сумму два рза считает? не пробовал " sum(race) as s, (count(race)-s)*s " ? |
0печаленный - Чт 30 Июн, 2011 13:43 |
NecroFilin, ну и это тоже. И операций много. Мускуль всё-таки не заточен под арифметику. (ета нипацказка. Нипацказка ета. ) |
phoenix - Чт 30 Июн, 2011 14:20 |
NecroFilin писал(а): (sum(race)-count(race))*sum(race) а min(race)!=max(race) не проще? |
НИК_как_НИК - Пт 15 Июл, 2011 14:31 |
Ника кне могу найти пример помогите: Есть скрипт, в нём есть форм примерно такая <form method='post'> <select id='olo' name='olo'> <option disabled>Выберите</option> <option value='one'>1</option> <option value='two'>2</option> </select> <input type='submit' value='Жмяк'> </form> так же есть : $1=100/2 $2=200/2 Нужно: Чтобы например при выборе 1 и нажатие "Жмяк" выполнилось: Print "Выполнилось $1" А если я выбрал 2 я нажал "жмяк"у меня выполнилось: print "выполнилось $2" |
Zolcts - Пт 15 Июл, 2011 14:46 |
НИК_как_НИК, форма без экшна, оно вообще работает? <form method='post' action="my.php" > - добавляем, куда форма будет слать данные. В оптион дописуй name="имя_опции"
А потом уже if ($_POST['one']) { echo 'выполнилось $1';} |
НИК_как_НИК - Пт 15 Июл, 2011 15:00 |
Zolcts, Спасибо, экшгн я просто забыл написать в самой форме он конечно есть. ПыСы http://gyazo.com/25de03a9b4de950683e26ea565694abe.png |
Zolcts - Пт 15 Июл, 2011 15:31 |
НИК_как_НИК, сбрасываться и должно, форма всегда сбрасывается разве что запоминать введённые данные. Результат должен быть, мб, за дизайном не видно? Могло вылезти в самом верху страницы.
Zolcts писал(а): $_POST['one'] а это, если не ошибаюсь, как раз name="one". <option value='one' name='one'>1</option> типо так |
phoenix - Пт 15 Июл, 2011 16:05 |
Zolcts писал(а): if ($_POST['one']) { echo 'выполнилось $1';} нет, это же селект.. вот так надо: if ($_POST['olo'] == 'one'){ echo 'выполнилось $1'; }
Zolcts писал(а): <option value='one' name='one'>1</option> типо так http://htmlbook.ru/html/select <- тут можно почитать про селекты, у него селект правильный |
НИК_как_НИК - Сб 16 Июл, 2011 9:52 |
phoenix, Тоже самое, нажимаю на кнопку результат не выводится |
Zolcts - Сб 16 Июл, 2011 10:04 |
НИК_как_НИК <form method='post' action='1.php' > <select id='olo' name='olo'> <option disabled>Выберите</option> <option value='one'>1</option> <option value='two'>2</option> </select> <input type='submit' value='Жмяк'> </form>
<?php
if ($_POST['olo'] == 'one'){ echo 'выполнилось one';} if ($_POST['olo'] == 'two'){ echo 'выполнилось two';} if(!$_POST) {echo 'выбери чё-нить';}
Проверил, фунциклирен з.ы. 2 ифа, а не елсе, ибо остального скрипта не видно, всё равно подгонять надо будет |
Zolcts - Сб 16 Июл, 2011 10:09 |
phoenix писал(а): тут можно почитать про селекты, у него селект правильный да не, мне селекты даром не нужны, давно решил, что радиобаттон лучше. Ну или чекбоксы. Потому и скрипт не правильно написал, ибо не учёл, что селект з.ы. пишу вторым постом, ибо первый править не могу, отваливается с ошибкой мускуля. Кавычки... |
НИК_как_НИК - Сб 16 Июл, 2011 10:28 |
Zolcts, Скрипт в одном файле с формой, если это что-то может значить.... твоя форма да функциональна, Однако у меня есть скрипт в одном файле то результат нулевой если скрипт в другом файле и я указываю в экшне файл с самим переменными и как их считать то у меня скрипт просто при нажатии на жмяк. переносит к файлу который указан в экшене. а там абсолютно чистая страница выводится Или Ифы надо писатьв файле с скриптом? или их нужно после форму прописать? |
Zolcts - Сб 16 Июл, 2011 10:33 |
НИК_как_НИК всё, что после <?php нужно вставлять в файл, который указал в экшн формы. Ему передаются данные - ему и обрабатывать. Например, сама форма у нас в файле 1.html, в экшн формы указано action='zzzz.php' то и if ($_POST['olo'] == 'one') и всё остальное должно находится в файле zzzz.php |
НИК_как_НИК - Сб 16 Июл, 2011 10:35 |
Zolcts, Теперь перебросило на пхп файл указаный в экшене, написано выполнилось указанная_мною_переменная , но переменная записана в виде $Название_переменной, и меня напрягает что меня на пхп файл другой перекидывает, так и должно быть? и ещё вопрос если например я запихаю всю свою форму в файл со скриптом мне эти ифы надо после ставить закрывающего тега формы? |
Zolcts - Сб 16 Июл, 2011 10:44 |
НИК_как_НИК если не хочешь, чтоб перекидывало, пиши в экшн тот же файл, в котором форма находится.
НИК_как_НИК писал(а): е эти ифы надо после ставить закрывающего тега формы? Ну посмотри же, я тебе полностью рабочий пример привёл, там не только закрывающий тег есть, но и такой маленький открывающий <?php |
НИК_как_НИК - Сб 16 Июл, 2011 10:46 |
Zolcts,Извини просто тупанул Zolcts, phoenix, Спасибо всё сделал рабочим |
phoenix - Сб 16 Июл, 2011 20:03 |
Zolcts писал(а): мне селекты даром не нужны, давно решил, что радиобаттон лучше. Ну или чекбоксы. то же самое, что сравнивать что лучше - руки или ноги |
terrible666 - Вс 17 Июл, 2011 15:30 |
phoenix, однозначно женские стройные ноги |
Watchman - Вт 19 Июл, 2011 16:56 |
нужно динамически подгрузить состав клана, массив находится здесь: http://www.ereality.ru/ajax/clan_members/?cid=49
с аяксом раньше не работал, а эта наброска почему-то не реботает:
Цитата: function makeRequest(url) { if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(null); } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; req.open("GET", url, true); req.send(); } } } function processReqChange() { if (req.readyState == 4) if (req.status == 200) { //бла-бла } else alert("There was a problem retrieving the XML data:" + req.statusText); }
получаю алерт ошибки, но без статуса. Может кто что посоветовать? |
NecroFilin - Вт 19 Июл, 2011 18:31 |
Watchman, аякс не может грузить даненые с чужих хостов... тебе надо сделать на своём хосте скрипт который читает АПИ, и возвращает тебе данные, а с него читать |
Watchman - Вт 19 Июл, 2011 19:27 |
NecroFilin, понятно, спс вроде сделал как надо, но сервер возвращает пустой обьект: var ClanMembers = {}; возможно есть другое API для получения количества людей в клане? |
Zolcts - Вт 19 Июл, 2011 19:31 |
Watchman, а это разрешено, доступ к этому файлу? Вроде, только через апи разрешили данные получать Если можно - 0. Создаём пых файл, папку для кеша. 1. пыхом открываем папку кеша, смотрим есть ли там файло и когда создано. Если 6+ часов - перезаписываем, файл_гет_контентс тот скрипт, эхо всех данных. 2. Аяксом опрашиваем наш пых файл (он-то уже на нашем серваке...). |
Watchman - Вт 19 Июл, 2011 19:39 |
Zolcts, хз, нашел ссылку в граневской вики я кажется понял, если разлогиниться в гранях и перейти: http://www.ereality.ru/ajax/clan_members/?cid=49 то получим этот пустой обьект "var ClanMembers = {};" |
Zolcts - Вт 19 Июл, 2011 19:44 |
Watchman писал(а): если разлогиниться в гранях точно. Видать, действие запрета. Значит, через апи, на гапи этого нет. |
Watchman - Вт 19 Июл, 2011 19:50 |
Zolcts, http://gapi.ereality.ru/clans/49.txt - 404 |
NecroFilin - Вт 19 Июл, 2011 20:22 |
Watchman, там щас через апи, а не черег гапи http://api.ereality.ru/KEY/cinfo/?id=49 - информация о клане |
Watchman - Ср 20 Июл, 2011 1:38 |
NecroFilin, да, разобрался и вроде работает: http://brothers.erclans.ru/viewpage.php?page_id=101 |
0печаленный - Ср 20 Июл, 2011 3:15 |
Watchman писал(а): нужно динамически подгрузить состав клана, массив находится здесь: http://www.ereality.ru/ajax/clan_members/?cid=49 Watchman, function outputClan() { alert(ClanMembers); } function getChar() { el=document.getElementsByTagName('head'); if (document.getElementById('Watchman')) el[0].removeChild(document.getElementById('Watchman')); newEl=document.createElement('script'); newEl.id='Watchman'; newEl.onload=outputClan; newEl.src='http://www.ereality.ru/ajax/clan_members/?cid=49'; el[0].appendChild(newEl); }
Мысль понятна?
Zolcts писал(а): форма без экшна, оно вообще работает? Не надо вводить человека в заблуждение. Как и все объекты форма имеет дефолтные значения всех свойст. В том числе и свойства action. |
phoenix - Ср 20 Июл, 2011 16:11 |
0печаленный, хм, спасибо за пример |
Zolcts - Ср 20 Июл, 2011 17:44 |
0печаленный писал(а): Мысль понятна?
Watchman писал(а): получим этот пустой обьект "var ClanMembers = {};
Ежели не юзать курл и не подсовывать логиныпассы, то нифига нам по той ссылке не дадут. Кроме бана по IP сервера, об этом писалось уже. ПРавда, банов пока не давали, вроде
0печаленный писал(а): Не надо вводить человека в заблуждение. Я, вообще-то, спросил, работает ли оно. Да, по дефолту экшн идёт в тот же файл. Но далеко не всегда нужно так |
phoenix - Ср 20 Июл, 2011 18:21 |
Zolcts, этот скрипт будет работать для юзера, который в гранях в другой вкладке.. и ничего не надо подсовывать.. страницу же открывает браузер юзера, а не сайт и по поводу бана, нигде в законах не записано, что нельзя авторизовываться через курл.. играть "ботом" нельзя |
Zolcts - Ср 20 Июл, 2011 19:07 |
phoenix писал(а): и по поводу бана, нигде в законах не записано
Невидимка писал(а): Напоминаю, что разрешается осуществлять запросы ТОЛЬКО через API. Обращаться напрямую к скриптам игры ЗАПРЕЩЕНО. http://forum.ereality.ru/topic135869/page1.html#post3594365 Ну, раз не сказано
phoenix писал(а): страницу же открывает браузер юзера, а не сайт а в логах будет указан реферер..
phoenix писал(а): этот скрипт будет работать для юзера, который в гранях в другой вкладке.. А разлогинится - и аминь? |
Chkalov - Ср 20 Июл, 2011 19:23 |
phoenix писал(а): нигде в законах не записано, что нельзя авторизовываться через курл.. играть "ботом" нельзя забанят ПЖА. Спрашивал уже разрешения у админов. |
0печаленный - Ср 20 Июл, 2011 19:56 |
Zolcts писал(а): Ежели не юзать курл и не подсовывать логиныпассы, то нифига нам по той ссылке не дадут. Идём учить структуру http-запроса. Бодро.
phoenix, пример неполный. Ослу там ивент ручками писать надо. Я просто не стал код засорять. |
phoenix - Чт 21 Июл, 2011 0:46 |
Zolcts писал(а): http://forum.ereality.ru/topic135869/page1.html#post3594365 Ну, раз не сказано
спасибо за линк, интересный
Zolcts писал(а): а в логах будет указан реферер.. он вообще в заголовке документа передается, ты о каких логах? и причем тут реферрер вообще? он не проверяется.. это же апи Chkalov, боятся за трафик видимо, жаль 0печаленный, оно понятно, главное сам принцип.. очень просто, а в голову не приходило :( |
0печаленный - Чт 21 Июл, 2011 1:19 |
phoenix, фен, не хочу тебя расстраивать но этому "принципу" лет пятнадцать. Если бы гугл не начудила с хотитепитьреквестом - это был бы общепризнанный сейчас метод общения браузера с сервером. Думаешь я просто так терпеть не могу аякс? |
Zolcts - Чт 21 Июл, 2011 13:01 |
phoenix писал(а): он вообще в заголовке документа передается, ты о каких логах? и причем тут реферрер вообще? он не проверяется.. это же апи да нет, я про реферер к тому, что страницу со скриптом, ежели его аяксом запросить, откроет клиент, я не спорю. Но в логах ГРанёного сервера будет запрос с реферером нашего сервера. А это подпадает под "обращение к скриптам напрямую" |
phoenix - Чт 21 Июл, 2011 13:56 |
0печаленный, я и не сказал, что ты сделал открытие ) просто я об этом не знал, вот и спасибо) Zolcts, а мот мы просто линк сделали и юзер его в новом окне открыл? и я все равно так и не понял почему обращаться к апи стало преступно.. тем более тут даже не мы обращаемся, а клиент) |
Zolcts - Чт 21 Июл, 2011 13:59 |
phoenix, к АПИ обращаться не преступно, я про скрипт http://www.ereality.ru/ajax/clan_members/?cid=49, который изначально пытались аяксом грузить. Это - запрещено, апи - можно.. |
0печаленный - Чт 21 Июл, 2011 15:20 |
Zolcts, запрещено или нет - неважно. Его просто не возможно аяксом со стороны подгрузить, так что дальше про аякс можно замолчать. И реферер обойти - как нефиг делать. Так что базар пуст.
phoenix, про 15 лет я вообще-то к тому, что модные тенденции убивают разумные решения. А к скриптам вполне понятно почему запрещено лезть. Чтобы сервак не грузить. Апи, как я понимаю, на другом железе находятся. Хочешь обойти всё это - без проблем, но это не совсем хорошо по отношению к граням. |
zzzSnk - Пт 22 Июл, 2011 12:00 |
Вопрос: Кто делал в ДЛЕ события по клану, помогите плиз консультацией, а то я что то затупил |
Zolcts - Пт 22 Июл, 2011 19:00 |
0печаленный писал(а): Его просто не возможно аяксом со стороны подгрузить http://code.google.com/p/cross-domain-ajax/source/browse/trunk/cdajax.js Хорошо, невозможно, так невозможно. Выходит, невозможное - возможно
0печаленный писал(а): И реферер обойти - как нефиг делать. забавно, не первый раз замечаю, что повторяете то, что я уже говорил. И - давайте обойдём реферер без прослойки на другом языке, чисто яваскриптом? А если с прослойкой - то тут не может быть и вопросов о том, что подгрузить невозможно.
zzzSnk, А что не получается? |
NecroFilin - Пт 22 Июл, 2011 19:25 |
zzzSnk, а какая разница в ДЛЕ или нет? |
0печаленный - Пн 25 Июл, 2011 10:15 |
Zolcts писал(а): http://code.google.com/p/cross-domain-ajax/source/browse/trunk/cdajax.js Ещё один красавец. Аякс может работать только с доменом, с которого подгружен. А этот скрипт - просто раздутый пример из выше.
http://code.google.com/p/cross-domain-ajax/source/browse/trunk/cdajax.js писал(а): this.content = null; this.jsNode = document.createElement("script"); this.jsNode.type = "text/javascript"; this.jsNode.charset = "utf-8"; this.jsNode.src = this.URL; var oThis = this; var onLoad = function() Ничего не напоминает? |
Норб - Пт 29 Июл, 2011 21:49 |
Дана таблица Ololo в которой есть столбецы pepyaka_start, pepyaka_end и pepyaka_name
Есть запрос:
SELECT * FROM `Ololo` WHERE (`pepyaka_start` <= a AND a <= `pepyaka_end`) OR (`pepyaka_start` <= b AND b <= `pepyaka_end`) OR (`pepyaka_start` <= c AND c <= `pepyaka_end`)
Который выбирает строки где в интервал попадает одна из переменных a, b или с.
Можно ли как-то оптимизировать/написать по другому запрос что бы избавиться от этих не приятных AND OR ? |
phoenix - Пт 29 Июл, 2011 22:55 |
Норб, http://dev.mysql.com/doc/refman/5.0/en/comparison-operators.html#operator_between |
Норб - Пт 29 Июл, 2011 23:21 |
phoenix, Замена конструкции AND OR даст ощутимый выигрыш в производительности запроса? (Записей в таблице Ololo более 250 тысяч) |
phoenix - Сб 30 Июл, 2011 0:00 |
Норб, тебе легко проверить, у тебя таблица под рукой.. скорее всего выигрыша не будет, просто визуально более коротко |
intlex - Сб 30 Июл, 2011 1:58 |
Норб, скорость зависит, как правило, от наличия индекса по ограничиваемому полю |
0печаленный - Вт 02 Авг, 2011 8:28 |
Норб, обязательно именно запрос править при таких входящих? Нельзя до запроса взять min(a, b, c) и max(a, b, c) чтобы в запросе уже не шесть условий было, а два? |
Норб - Ср 03 Авг, 2011 15:12 |
0печаленный, мне же нужны отрезки в которые попадают эти переменные, а не один большой отрезок от минимального до максимального.
К примеру:
Название Старт Конец
А 1 3 Б 4 6 В 7 11 Г 12 15
Переменные a - 2, b - 8, c - 13
То бишь нужно что бы были выбраны поля с названиями A, B, Г
П.С.
Решил это дело разбив на два запроса. В первом находим для каждой переменной минимальное положительное значение(дельта) 'переменная' - `start`, далее отнимаем от заданных переменных соответсвующие им дельты. Далее через полученные старты получаем нужные поля при помощи SELECT FROM WHERE IN(старты).
Такие телодвижения дали выигрышь в 2 секунды времени. Вот только не нравиться то, как получаю дельты для перменных.
Приходить использовать такую громоздкую конструкцию:
SELECT MIN(IF('Переменная a' - `старт`, 'Переменная' - `старт`, максимальное число)), MIN(IF('Переменная b' - `старт`, 'Переменная' - `старт`, максимальное число)), ...
Может подскажет кто, может есть другой вариант как найти минимальное положительное значение для каждой переменной в наборе? |
terrible666 - Ср 03 Авг, 2011 21:13 |
А переменные a,b и с тоже в базе в отдельной табличке хранятся? |
Норб - Чт 04 Авг, 2011 11:23 |
terrible666, нет, переменные а, b, c генерируются php скриптом. |
terrible666 - Пт 05 Авг, 2011 14:01 |
Норб, приведи небольшой дамп таблички с отрезками |
0печаленный - Вт 09 Авг, 2011 3:59 |
Норб, через временную таблицу нельзя? Меня, если честно, смущает двухсекундный выигрыш по времени. С индексацией всё в порядке? У меня и гораздо более громоздкие запросы проходят меньше секунды, а база немаленькая. |
Норб - Вт 09 Авг, 2011 11:42 |
0печаленный, индекс создан как уникальный по Старт и Конец. в первом варианте мускул отказывается его юзать. Да и при форсировании индекса время запроса остаеться таким же как и было. |
Watchman - Вт 09 Авг, 2011 15:35 |
http://gapi.ereality.ru/online_heroes.txt Номер локации: 0 - Туманный город 1 - Остров Весеннего Листа 2 - Подземный Мир 3 - Остров Покинутых Песков 4 - ? 5 - ? 6 - ? 7 - кажется инст 8 - кажется ОК |
levakisso - Вт 09 Авг, 2011 15:35 |
всем привет,помогите найти компоненту hot or not2 для joomla или посоветуйте что то подобное для создания веб галереи |
0печаленный - Вт 09 Авг, 2011 22:54 |
Норб, так. Тогда давай заново. Тебе надо найти все записи, в которых a,b,c входят в интервал от start до end? Я правильно понимаю? |
Норб - Ср 10 Авг, 2011 2:45 |
0печаленный, все записи в которых a, b или c входит в интервал от start до end.
Реальная задача такая - есть таблица с названием страны и интервалом айпишек в виде long числа. От пользователя приходит n-е количество айпишек. Надо выбрать страны которым принадлежат эти йпишки. |
0печаленный - Ср 10 Авг, 2011 8:26 |
Норб, ой, дык у тебя вообще всё просто. При структуре таблицы country_id|min_ip|max_ip нужный айдишник будет в строке с максимальным значением min_ip меньше или равным заданному. А поле max_ip вообще можно смело удалять. Насколько я помню ip стран - цельные конгломераты. Но енто ты проверь. Если поле айпишников может быть рваным, то этот подход не канает. Твой, впрочем, тоже. Тогда что-то другое надо думать. Короче, в заданных условиях тебе поможет запрос SELECT `country_id`, max(`min_ip`) WHERE `min_ip`<=a
Ковырнул тему поподробнее. Во-первых: если у тебя база в формате
Австралия писал(а): 58.6.0.0 - 58.6.0.31 58.6.0.32 - 58.6.0.95 58.6.0.96 - 58.6.0.103 58.6.0.104 - 58.6.0.255 58.6.1.0 - 58.6.2.255 ... То приведи её в порядок. Это всё один диапазон, а показывает 5. Я там сильно не разбирался, но на вскидку 29251 диапазон из австралии - это один диапазон и любой австралийский айпишник туда входит. Во-вторых: количество выводимых данных сильно влияет на выполнение запроса. Запрос SELECT count(`id`) FROM `opa` в таблицу, где лежит 150к id-шников, выполняется в 20 раз быстрее, чем запрос SELECT `id` FROM `opa`. Для сравнения 0.03 и 0.68 секунды на моей слабенькой машинке. Так что ты хоть группируй вывод. Тебе же один id нужен, а не 29к одинаковых. :) В-третьих я по-прежнему удивлён экономией в две секунды.
mysql писал(а): mysql> select count(`id`) FROM `items`; +-------------+ | count(`id`) | +-------------+ | 3440722 | +-------------+ 1 row in set (0.00 sec) Что-то у тебя явно с базой не то. :) |
Норб - Ср 10 Авг, 2011 11:47 |
0печаленный, поле айпишников рваное. Тобишь
0печаленный писал(а): 58.6.0.0 - 58.6.0.31 - Астралия 58.6.0.32 - 58.6.0.95 - Зимбабве 58.6.0.96 - 58.6.0.103 - США 58.6.0.104 - 58.6.0.255 - Зимбабве 58.6.1.0 - 58.6.2.255 - Мухосранск
Поле max_ip вообще было введено для возможных удобств, коих так и не оказалось.
При поиске одной страны все красиво быстро и лаконично
SELECT `country_id` FROM *** WHERE `ip_start` <= a ORDER BY `ip_start` DESC LIMIT 1
Проблема в том как одним запросом все нужные страны выбрать. Как выбирать, по чем группировать? |
Норб - Ср 10 Авг, 2011 12:06 |
0печаленный писал(а): 58.6.0.0 - 58.6.0.31 58.6.0.32 - 58.6.0.95 58.6.0.96 - 58.6.0.103 58.6.0.104 - 58.6.0.255 58.6.1.0 - 58.6.2.255 ...
То приведи её в порядок. Это всё один диапазон, а показывает 5. Я там сильно не разбирался, но на вскидку 29251 диапазон из австралии - это один диапазон и любой австралийский айпишник туда входит. Во-вторых: количество выводимых данных сильно влияет на выполнение запроса. Запрос SELECT count(`id`) FROM `opa` в таблицу, где лежит 150к id-шников, выполняется в 20 раз быстрее, чем запрос SELECT `id` FROM `opa`. Для сравнения 0.03 и 0.68 секунды на моей слабенькой машинке. Так что ты хоть группируй вывод. Тебе же один id нужен, а не 29к одинаковых. :)
Не, все не так запущено. - Одна переменная - один диапазон - одна айдишка страны. |
0печаленный - Чт 11 Авг, 2011 2:08 |
Норб, а как ты собирался ассоциировать заданные ипы с полученными странами? Или это пофиг? Я утром поверчу вариантики. Но пока их два только вижу: или по запросу на каждый ип, или юнион. Но при большом количестве ипов юнион базу повесит. Она к длине запроса весьма чувствительна. |
0печаленный - Чт 11 Авг, 2011 10:06 |
Норб, слушай, я без руля где ты проблемы берёшь. [qoute]<? if ($_POST['list_ip']) { $start=microtime(true); $list_ip=explode(';', $_POST['list_ip']); mysql_connect('localhost', 'root', ''); mysql_select_db('2ip'); foreach($list_ip as $s) $res_list[$s]=mysql_result(mysql_query('SELECT `code` FROM `worldip` WHERE `start`<='.sprintf('%u', ip2long($s)).' ORDER BY `start` DESC LIMIT 1'), 0); $content.=mysql_error(); mysql_close(); $content.=count($list_ip).' '.(microtime(true)-$start).'<hr>'; } foreach($res_list as $k=>$s) $content.=$k.' '.$s.'<br>'; ?> <style> .out { width:500px; border:solid 1px red; float:right; } </style> <div class='out'><?=$content?></div> <form method='post'> <textarea cols='70' rows='40' name='list_ip'></textarea><br> <input type='submit' value='Слать на!'> </form>[qoute] 155 0.0214791297913 База отсюда: http://static.wipmania.com/static/worldip.sql.zip Тестилось на воркстанции под денвером. Где там две секунды? |
0печаленный - Чт 11 Авг, 2011 10:11 |
АААА!!! Я худею с котовского.
0печаленный писал(а): DB Error 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 'list_ip']) { $start=microtime(true); $list_ip=explode(';', $' at line 1 |
0печаленный - Чт 11 Авг, 2011 10:21 |
Невидимка, поправь что ли, а то кто-нибудь как заэскуэлит да заинъектит. Я, например. |
USF - Пт 12 Авг, 2011 13:30 |
доброго дня возникла такая ситуация - пишу данные в текстовый файл. потом построчно данные парсятся и выводятся на страницу. есть возможность удалить определенную строку. можно было легко реализовать, если бы я читал файл через file("text.txt") в массив. НО я читаю через fgets построчно, ибо файл может быть довольно большим и все писать в переменную глупо. но стал вопрос, как мне при таком подходе удаление реализовать? единственный нормальный вариант, который мне в голову пришел - завести еще один файл и при перебирании строк построчно записывать во второй файл КРОМЕ той, что нужно удалить. а потом тупо скопировать содержимое второго в первый или даже просто переименовать его. но ведь возможно есть куда красивее решение |
phoenix - Пт 12 Авг, 2011 15:25 |
красивее.. хранить данные в бд и удалять конкретную запись? таблицу не надо будет перезаписывать |
USF - Сб 13 Авг, 2011 0:47 |
phoenix, понятное дело. но реализация нужна без БД |
intlex - Чт 18 Авг, 2011 14:29 |
USF, чем не устраивает xml? |
phoenix - Чт 18 Авг, 2011 15:39 |
intlex, это было бы тоже самое, что и через file() |
XpressMusic - Пт 19 Авг, 2011 1:47 |
levakisso, morfeoshow норм |
intlex - Сб 20 Авг, 2011 13:17 |
USF, phoenix, если одна строка - одна запись, то может "обнулять" такую строку и в дальнейшем пустые пропускать? |
XpressMusic - Пн 22 Авг, 2011 15:38 |
Научите с API обращаться В ЛС или ЛЧ если можна... |
НИК_как_НИК - Пн 22 Авг, 2011 15:55 |
XpressMusic, http://forum.ereality.ru/topic144965/page1.html вот тут примеры
Цитата: Пример рейтинга: http://v-clan.ru/alien.txt Разбери сам скрипт и более менее что-то поймёшь дальше пытайся писать сам Ну по крайней мере я так учусь |
XpressMusic - Пн 22 Авг, 2011 21:34 |
НИК_как_НИК, да что же там розберёшься если JS не знаю и php на начальном уровне |
intlex - Вт 23 Авг, 2011 1:16 |
XpressMusic, ты б у сокланов спросил че ли |
intlex - Вт 23 Авг, 2011 1:22 |
0печаленный, Норб, осилил прочитать.... зачем IP хранить в строке, это ж обычный integer 4 байта ps. а ещё провайдеры собираются переходят на IPv6 |
Chkalov - Вт 23 Авг, 2011 1:53 |
intlex писал(а): это ж обычный integer 4 байта беззнаковый |
НИК_как_НИК - Вт 23 Авг, 2011 9:24 |
XpressMusic, ну тогда читай учебник пхп потом скрипт сам смотри если не знаешь что это то поиск тебе в помощь, я же тоже не очень и php могу только простенький скрипт написать давай не ленись поверь тут нужна практика практика и снова практика |
KWiT_ - Вт 23 Авг, 2011 10:10 |
XpressMusic писал(а): да что же там розберёшься если JS не знаю А что знаешь тогда? |
НИК_как_НИК - Вт 23 Авг, 2011 14:23 |
Есть скрипт в нём 5 калькуляторов, если например я считаю первый калькулятор затем второй то итоги первого сбрасываются. Мне сказали что нужно поменять логику php на JS проюзал инет не нашёл что же такое логика php и как её поменять на js. Что же такое эта логика может знает кто? и что можете ещё посоветовать чтобы если " я считаю первый калькулятор затем второй то итоги первого сбрасываются." такого не происходило. |
Норб - Вт 23 Авг, 2011 18:24 |
intlex, хз, у меня в базе сидят ip в инте после функции ip2long
НИК_как_НИК, Самый простой (и не очень красивый способ!!!!! ). Все калькуляторы пихаем в одну форму. В скрипте уже данные по какой-то логикераспределяются по своим формулам и общатываются где надо. В формах в полях ввода value="$_POST['переменная']". Плохо это тем, что при обращении к скрипту происходит работа сразу всех калькуляторов, за что, собственно, надо бить по пальцам.
Можно при пересчетах писать новые данные в сессию или куки, но тоже красотой такой метод не обладает.
Лучше всего это все дело организовать на Js.
НИК_как_НИК писал(а): Мне сказали что нужно поменять логику php на JS Тут, я полагаю, подразумевалось то, что скрипт должен быть написать на Яваскриптах. То бишь все подсчеты происходят без перезагрузки страницы, потому данные из форм пропадать не будут.
Тут был я |
НИК_как_НИК - Вт 23 Авг, 2011 19:06 |
Норб, а у меня JS хромой я давно им не пользовался =( Ну ладно спасибо за ответ |
intlex - Вт 23 Авг, 2011 19:17 |
НИК_как_НИК писал(а): Мне сказали что нужно поменять логику php на JS Сдается мне нужно использовать ajax. |
НИК_как_НИК - Вт 23 Авг, 2011 19:26 |
intlex писал(а): Сдается мне нужно использовать ajax. час от часу не легче |
Норб - Вт 23 Авг, 2011 20:51 |
intlex, нафига? |
0печаленный - Ср 24 Авг, 2011 3:14 |
НИК_как_НИК писал(а): Есть скрипт в нём 5 калькуляторов, если например я считаю первый калькулятор затем второй то итоги первого сбрасываются. Мне сказали что нужно поменять логику php на JS проюзал инет не нашёл что же такое логика php и как её поменять на js. Что же такое эта логика может знает кто? и что можете ещё посоветовать чтобы если " я считаю первый калькулятор затем второй то итоги первого сбрасываются." такого не происходило. Ну в общем и целом норб всё правильно расписал. Логика PHP - это клиент/сервер. Ты отправил запрос, получил код страницы. Логика JavaScript - это логика прикладного программирования. Ничего никуда не отправляется, всё происходит в одной программе. В данном случае в браузере. И такой подход в твоём случае единственно верный, поскольку не грузит сервер. |
intlex - Вт 30 Авг, 2011 22:26 |
0печаленный, Норб, оригинально-с передавать вычислительный код клиентской стороне. |
FrostKarina - Вт 30 Авг, 2011 22:35 |
НИК_как_НИК писал(а): Есть скрипт в нём 5 калькуляторов, если например я считаю первый калькулятор затем второй то итоги первого сбрасываются <html> <form name="f1" onsubmit="f1.v1.value = eval(f1.v1.value); f2.v2.value = ''; f3.v3.value = ''; return false;"> <input type="text" name="v1"/> <input type="submit" value="calc" /> </form>
<form name="f2" onsubmit="f2.v2.value = eval(f2.v2.value); f1.v1.value = ''; f3.v3.value = ''; return false;"> <input type="text" name="v2"/> <input type="submit" value="calc"/> </form>
<form name="f3" onsubmit="f3.v3.value = eval(f3.v3.value); f2.v2.value = ''; f1.v1.value = ''; return false;"> <input type="text" name="v3"/> <input type="submit" value="calc" /> </form>
</html>
|
НИК_как_НИК - Ср 31 Авг, 2011 11:23 |
FrostKarina, не помогло |
Норб - Ср 31 Авг, 2011 12:05 |
intlex, формулы калькуляторов для граней это такой секрет, ради которого стоит использовать аякс и скрывать вычислительный код
FrostKarina, В коде подразумевалась что по клику будет выполняться арифметическая строка типа(2 + 2), которая находиться в соответсвующем инпуте форме, а сабмит не будет происходить? |
Норб - Ср 31 Авг, 2011 12:11 |
P.S. Посоветуйте хорошую литературу по глубокому изучению SQL. |
Chkalov - Ср 31 Авг, 2011 14:13 |
Норб, не думаю, что есть смысл (и есть литература) по изучению SQL в принципе. Советую ориентироваться на конкретную СУБД- interbase(firebird), mssql, mysql и тд. поскольку каждая поддерживает или не поддерживает различные функции, процедуры, триггеры и тд |
Норб - Ср 31 Авг, 2011 16:36 |
Chkalov, на данный момент интересует mysql на движке innoDb. Чувствую что плаваю в триггерах, индексациях и транзакциях и хочу этот недостаток устранить. Может будут советы по литературе, сайту или тп? |
Chkalov - Чт 01 Сен, 2011 12:19 |
Норб, http://www.infanata.com вот тут есть масса полезной литературы. Триггеры только в 5 версии появились (если я не ошибаюсь), сам не искал каких-то "углубленных" книг, знаком с ними из интербэйса, смотрел только синтаксис, но уверен что можно там найти что почитать. Там нмого разных "уровней" пользователя, если под твоим книга не доступна будет - напиши. |
Норб - Чт 01 Сен, 2011 16:01 |
Chkalov, Большое человеческое спасибо. На выходных почитаю, что на сайте есть и обязательно отпишусь |
intlex - Пт 02 Сен, 2011 3:18 |
Норб, если говорить о матчасти, то читать стандарт SQL-92. |
FrostKarina - Пт 02 Сен, 2011 15:38 |
НИК_как_НИК писал(а): не помогло это печально
Норб писал(а): В коде подразумевалась ... Код соответствует ТЗ на 60% |
Норб - Пт 02 Сен, 2011 16:03 |
FrostKarina, Я бы с вами с удовольствием занялся бы сексом. Люблю всякого вида тру извращения |
0печаленный - Вс 25 Сен, 2011 13:33 |
intlex писал(а): 0печаленный, Норб, оригинально-с передавать вычислительный код клиентской стороне. Вообще-то для этого компанией НетсКейп и создавался ЯваСкрипт. Историю ИТ в школе учить надо было. Или хотя бы в универе не сачковать. |
0печаленный - Вс 25 Сен, 2011 13:45 |
Ребзя, вопрос про flash. Создаю объект, гружу флэшку. Убиваю объект - в памяти остаётся висеть процесс. Как-то яваскрипт может сказать флэшке "умри" или это неизбежность? |
NecroFilin - Пн 26 Сен, 2011 0:06 |
0печаленный писал(а): Создаю объект, гружу флэшку. Убиваю объект - в памяти остаётся висеть процесс. Как-то яваскрипт может сказать флэшке "умри" или это неизбежность? процесс это не тот объект который ты подргузил, а интерпретатор флэша... яваскрипт ним точно никак не может работать
0печаленный писал(а): Вообще-то для этого компанией НетсКейп и создавался ЯваСкрипт. Историю ИТ в школе учить надо было. Или хотя бы в универе не сачковать. ну.. у нас такого точно не было ни в школе, ни в универе... я б запомнил хотя может у программистов было, я не в курсе |
KWiT_ - Пн 26 Сен, 2011 13:45 |
Коллеги, такой вопрос: Есть реализация подгружаемых с помощью AJAX-а html-блоков: function Show() { var theme=$("#theme_type").val(); if (theme=="") {theme="general"}; var path="some url"+theme+".html"; $.ajax({ url: path, dataType: "html", success: function(msg){ $('#magic_content').html(msg); } }); return false; }
function ChangeThemeType(themetype) { $('#theme_type').value=themetype; Show(); }
Может криво - суть не в этом. Собственно вопрос: можно ли используя подобный подход (без использования PHP) передавать значения theme_type GET-ом? Т.е. можно ли задать прямую ссылку на подгружаемую часть страницы? |
NecroFilin - Пн 26 Сен, 2011 14:12 |
KWiT_ писал(а): Собственно вопрос: можно ли используя подобный подход (без использования PHP) передавать значения theme_type GET-ом? Т.е. можно ли задать прямую ссылку на подгружаемую часть страницы? описание $.ajax не читал? там ж описано что можно |
KWiT_ - Пн 26 Сен, 2011 16:06 |
NecroFilin, Хреново читал, наверно Перечитаю |
KWiT_ - Пн 26 Сен, 2011 18:05 |
Перечитал... то ли у меня с мозгами от реала перекос, но не понял... Если что - пишите ЛС, дам аську... |
Норб - Пн 26 Сен, 2011 23:51 |
KWiT_, тут вопрос в параметре data метода $.ajax? Или я вообще не врубился в поставленную задачу? |
Норб - Пн 26 Сен, 2011 23:53 |
P.S. Я ненавижу prototype.js |
phoenix - Вт 27 Сен, 2011 13:24 |
KWiT_ писал(а): var theme=$("#theme_type").val(); if (theme=="") {theme="general"}; var theme=$("#theme_type").val() || "general";
KWiT_ писал(а): $('#theme_type').value=themetype; $('#theme_type').val(themetype); но если очень хочется сделать так:
KWiT_ писал(а): $('#theme_type').value=themetype; то будет так: $('#theme_type')[0].value=themetype; |
phoenix - Вт 27 Сен, 2011 13:37 |
KWiT_ писал(а): передавать значения theme_type GET-ом самый простой вариант: var path="some url"+theme+".html?theme_type="+theme;
можно было так: $.get(path,{theme_type: theme},function(msg) {...},"html")
через $.ajax, так: $.ajax({ url: path, data: {theme_type: theme}, dataType: "html", ..... |
intlex - Вт 27 Сен, 2011 23:32 |
конечно KWiT_ писал(а): Собственно вопрос: можно ли используя подобный подход (без использования PHP) передавать значения theme_type GET-ом? Т.е. можно ли задать прямую ссылку на подгружаемую часть страницы? Можно, если использовать mod_rewrite+apache/nginx на сервере для разбора запроса. |
KWiT_ - Ср 28 Сен, 2011 11:13 |
Норб, а при чем тут prototype? intlex, сервер граневый... для клан-сайта phoenix, спасибо, попробую Сразу не могу, т.к. с работы нет фтп-доступа Суть - в гайдах на КС тампов в гайдах проф нужно сделать так, чтобы на калькулятор можно делать отдельную ссылку |
phoenix - Ср 28 Сен, 2011 11:24 |
KWiT_, а зачем для ссылки ajax? а если хочешь хтмлку калькулятора подгрузить к странице, то лучше всего использовать http://api.jquery.com/load/ |
KWiT_ - Ср 28 Сен, 2011 16:49 |
phoenix, общий шаблон - это одна страница, калькулятор - это внутренность одного блока Вот и хочу сделать ссылку, которая бы автоматически загружала шаблон гайда, но с разделом "калькулятор". чтобы остальные ссылки гайда были активны... сразу же
По сути - я не "только учусь" - вот и не знаю еще всех методов |
phoenix - Ср 28 Сен, 2011 17:04 |
KWiT_, можно так: <a href="javascript:$('#target').load('calcs.php?get=fishman')">Калькулятор</a> #target - то куда будет вставлен полученный хтмл.. вообще все по документации, ссылка выше а можно загрузить калькулятор сразу на странице с display: none; , а потом сделать jQuery.show() |
KWiT_ - Чт 29 Сен, 2011 12:50 |
phoenix, немного не врубаюсь в то что ты пишешь... или просто плохо объясняю... как-нибудь свяжемся в он-лайн :) |
0печаленный - Пт 30 Сен, 2011 3:51 |
KWiT_ писал(а): $ С этого места дальше можно не читать. Простите, не удержался.
Ребзя, такая задача. Дано: Существует таблица, в которой написаны аккаунт и баланс кредитов на этом аккаунте. Со стороннего сервера приходит http-запрос: такой-то аккаунт хочет потратить столько-то кредитов. Задача1: списать одну цену за две покупки. Задача 2: не допустить этого.
Слабо? |
NecroFilin - Пт 30 Сен, 2011 4:32 |
0печаленный писал(а): Дано: Существует таблица, в которой написаны аккаунт и баланс кредитов на этом аккаунте. Со стороннего сервера приходит http-запрос: такой-то аккаунт хочет потратить столько-то кредитов. Задача1: списать одну цену за две покупки. Задача 2: не допустить этого. вначале объясни чё ты хочешь... а потом подумаем |
phoenix - Пт 30 Сен, 2011 9:48 |
0печаленный писал(а): С этого места дальше можно не читать. интересно как ты на php пишешь, если с таких мест не читаешь:) строку написал - удалил из своей памяти? |
NecroFilin - Пт 30 Сен, 2011 13:11 |
phoenix, $ в яваскрипте - признак jQuery |
phoenix - Пт 30 Сен, 2011 16:01 |
NecroFilin, http://goo.gl/H6oZq |
Норб - Сб 01 Окт, 2011 17:30 |
NecroFilin, http://api.prototypejs.org/dom/dollar/
KWiT_, Это так... Крик души был... А по твоему вопросу :
KWiT_ писал(а): общий шаблон - это одна страница, калькулятор - это внутренность одного блока Вот и хочу сделать ссылку, которая бы автоматически загружала шаблон гайда, но с разделом "калькулятор". чтобы остальные ссылки гайда были активны... сразу же
Плохо понимаю в чем тут проблема и почему подгрузку калькулятора надо делать на Яваскриптах. На php:
1. Берем шаблон 2. Берем калькулятор 3. HTML калькулятора записываем в переменную. 4. Переменную цепляем к шаблону (По обстоятельствам с проверкой на iiset) 5. Профит.
Хз, или правильно понял суть проблемы |
KWiT_ - Сб 01 Окт, 2011 17:39 |
Норб, Нет, вопрос как раз в том,чтобы без РНР. Так как подобным образом реализовать ссылки и на страницы другого типа - не калькуляторные Суть вопроса - посомтрите, например на нашем КС гайд по инстансам, где никаких вычислений не держится. каждый раздел хранится в отдельном хтмл-файле, чтобы было легче изменять в случае чего. Вот как можно без РНР сделать прямые ссылки на такие разделы? |
Норб - Сб 01 Окт, 2011 17:51 |
KWiT_, Описание | Интерфейс | Вещи | События | Квесты | Трофеи | Боты | Ауры | Пейзажи Эти ссылки имеются в виду? |
Норб - Сб 01 Окт, 2011 17:53 |
KWiT_, и должно быть что-то вроде Описание | Интерфейс | Вещи | События | Квесты | Трофеи | Боты | Ауры | Пейзажи | Калькулятор ? |
phoenix - Сб 01 Окт, 2011 17:57 |
KWiT_, подойдет тот вариант, что я выше описал |
phoenix - Сб 01 Окт, 2011 18:00 |
KWiT_, так у вас же и так все работает.. только надо в onclick return false добавить |
Норб - Сб 01 Окт, 2011 18:00 |
KWiT_, KWiT_, Вон, у вас на сайте есть брутальная функция Show(). В ней вся логика подгрузки страниц уже есть. |
~Igash~ - Сб 01 Окт, 2011 19:28 |
при создании ссылки, текст подчеркивается. Можно ли убрать подчеркивание? И можно в html сделать ссылку на инфу перса в изображении(i) в новое окно? (открывается только в родительском окне) |
Watchman - Сб 01 Окт, 2011 19:41 |
~Igash~ писал(а): при создании ссылки, текст подчеркивается. Можно ли убрать подчеркивание? в CSS: a { text-decoration: none; }
~Igash~ писал(а): И можно в html сделать ссылку на инфу перса в изображении(i) в новое окно? <a target="_blank" href=""></a> |
~Igash~ - Сб 01 Окт, 2011 19:51 |
Watchman писал(а): <a target="_blank" href=""></a> спасибо) в визуальном редакторе не получалось, сколько не выставлял
Watchman писал(а): в CSS: a { text-decoration: none; } а в html ? |
Watchman - Сб 01 Окт, 2011 19:54 |
~Igash~ писал(а): а в html ? о_О на улице 2011, юзай стили |
~Igash~ - Сб 01 Окт, 2011 20:12 |
Watchman, а где это прописывать? Чтоб во всем сайте не было таких ссылок? |
Watchman - Сб 01 Окт, 2011 20:18 |
~Igash~, создаешь файл styles.css, там будут все стили. В хэдере каждой страницы его подключаешь: <link href="styles.css" rel="stylesheet" type="text/css"> |
~Igash~ - Сб 01 Окт, 2011 21:20 |
нашел) <style type="text/css"> A { text-decoration: none; /* Отменяем подчеркивание у ссылки */ } </style> |
Luxory - Вс 02 Окт, 2011 0:15 |
~Igash~, или в каждой ссылке <a style=' text-decoration: none;' href=''></a> |
Watchman - Вс 02 Окт, 2011 13:19 |
~Igash~, внутренние стили в этом случаи не рекомендуется использовать |
phoenix - Вс 02 Окт, 2011 13:30 |
Watchman, кем не рекомендуется? |
НИК_как_НИК - Вс 02 Окт, 2011 13:41 |
Watchman, ХЗ как на счёт не рекомендуется, но вот насчёт того что это не удобно, это да |
Watchman - Вс 02 Окт, 2011 13:53 |
phoenix писал(а): кем не рекомендуется? ну например людьми, которые понимают, что изменить стиль ссылки(как в этом случаи) намного удобней в одном файле, нежели править его на каждой странице, основы грамотной верстки |
~Igash~ - Вс 02 Окт, 2011 14:34 |
Luxory писал(а): или в каждой ссылке <a style=' text-decoration: none;' href=''></a> в новостях не прет такое Watchman, + |
phoenix - Вс 02 Окт, 2011 15:50 |
Watchman, а если по какой-либо причине стили генерируются на ходу? делать .css файл через mod_rewrite?) |
НИК_как_НИК - Вс 02 Окт, 2011 16:41 |
phoenix, ИМХО они явно про укоз говорят, какие там стили на ходу будут генерироваться? |
Watchman - Вс 02 Окт, 2011 16:57 |
phoenix писал(а): а если по какой-либо причине ну с таким подходом можна придумать массу мелких причин, когда CSS вообще не подходит, ты же не будешь, ссылаясь на них, предлогать отказаться от технологии вообще?
НИК_как_НИК писал(а): они явно про укоз говорят о_О Они говорят о ситуации в общем |
phoenix - Вс 02 Окт, 2011 17:25 |
НИК_как_НИК, Watchman, все зависит от необходимости, каждый способ допустим в определенном случае.. поэтому странно говорить о "рекомендованности".. |
Watchman - Вс 02 Окт, 2011 17:32 |
phoenix, эта "рекомендованость" именно что относилась к вопросу Igash'a, потому и не понятен предмета данного спора |
0печаленный - Вс 02 Окт, 2011 19:30 |
NecroFilin писал(а): вначале объясни чё ты хочешь... а потом подумаем Хорошо. Начнём по-порядку. Существует таблица id_account | balance Прилетает гет: ...?id_account=123&price=456 где price - стоимость предмета. На выходе Ok если денег хватает и error если не хватает. Как будет выглядеть скрипт списания средств? |
0печаленный - Вс 02 Окт, 2011 19:38 |
Watchman, таблицы стилей не зря названы каскадными. Для примера: три блока с одним размером шрифта, одним цветом текста, одинаковым бордером, все absolute, но все три в разных местах. Что будешь делать? Наверное размер шрифта, цвет текста, бордер и позишн опишешь в файле css, а top и left в стиле конкретного элемента. Или нет? Или каждому отдельный класс? Таких тысячи примеров привести можно. В том числе и трёхкаскадных. Всё зависит от сложности структуры вёрстки. |
Watchman - Вс 02 Окт, 2011 20:04 |
0печаленный, ты как и phoenix сгущаешь краски, ведь речь никаким образом не ишла о полном отказе от использования внутренних стилей
0печаленный писал(а): Или нет? Или каждому отдельный класс?biggrin а разделение стилей по классам и id никто не отменял, так между прочим |
0печаленный - Вс 02 Окт, 2011 20:46 |
Watchman писал(а): а разделение стилей по классам и id никто не отменял, так между прочим id необходимо только при наличии JavaScript. Я понимаю, конечно, что нынешнее поколение (прости меня, господи) верстальщиков без жэ кувери меню выпадающее не нарисуют, но это деградация профессии, а не свойство языка. |
0печаленный - Вс 02 Окт, 2011 21:33 |
Watchman писал(а): 0печаленный, ты как и phoenix сгущаешь краски Насколько мне не изменяет мой склероз, самые яркие краски видят идиоты, если нам правильно истолковали этот медицинский термин при нашем среднем-специальном экономическом в области фортепьяно. Я всё забыл, что хотел? Ах, да! Фен, ты счастливый человек, если $ не вызывает у тебя нервного тика. Никогда не лезь в дерьмо, с названьем кратким jQuery. |
NecroFilin - Вс 02 Окт, 2011 21:36 |
0печаленный писал(а): Хорошо. Начнём по-порядку. Существует таблица id_account | balance Прилетает гет: ...?id_account=123&price=456 где price - стоимость предмета. На выходе Ok если денег хватает и error если не хватает. Как будет выглядеть скрипт списания средств? и в чём сложность? SELECT if({$price}<=`balance`,1,0) FROM table WHERE `id_account`={$id_account} |
NecroFilin - Вс 02 Окт, 2011 21:42 |
0печаленный писал(а): Насколько мне не изменяет мой склероз, самые яркие краски видят идиоты |
Watchman - Вс 02 Окт, 2011 21:58 |
0печаленный, не понимамаю каким боком тут JQ, но, пожалуй, оставлю тебя на едине с твоей священной форумной войной против него и аякса |
0печаленный - Пн 03 Окт, 2011 0:39 |
NecroFilin писал(а): SELECT if({$price}<=`balance`,1,0) FROM table WHERE `id_account`={$id_account} Жёстенько. Но можно проще. |
NecroFilin - Пн 03 Окт, 2011 0:56 |
0печаленный, ну.. можно запросом получить баланс, и сравнить его в пхп или ты про: SELECT count(*) FROM table WHERE `id_account`={$id_account} AND {$price}<=`balance` ? |
0печаленный - Пн 03 Окт, 2011 1:33 |
NecroFilin писал(а): можно запросом получить баланс, и сравнить его в пхп Угу. Решение задачи 1. отправить два запроса одновременно.
NecroFilin писал(а): SELECT count(*) FROM table WHERE `id_account`={$id_account} AND {$price}<=`balance` Напоминаю: надо списать деньги. Т.е. уменьшить баланс. |
NecroFilin - Пн 03 Окт, 2011 1:52 |
0печаленный, и в чём сложность? я так и не понял к чему был тот вопрос UPDATE table SET `balance`=`balance`-{$price} WHERE `id_account`={$id_account} AND {$price}<=`balance`
и нах два запроса если один всё делает? |
0печаленный - Пн 03 Окт, 2011 10:32 |
NecroFilin, ты так считаешь? Сейчас расскажу откуда вообще взялась такая задачка. Существуют игровые сервера. там игроки бегают, прыгают, убивают друг друга и случайно подвернувшихся под горячую руку мобов. А ещё они могут купить труднодоступные игровыми способами вещи за донат. В этом случае игровой сервер отправляет гет-запрос веб-серверу, на котором и хранится баланс игрока. Он может его пополнить вагоном способов - всё для людей, только деньги давайте. А веб-сервер ему отвечает: ты прекрасна, спору нет... а дальше в зависимости от баланса. Скрипты эти писались без меня и я грешный туда даже не лез - без этого зашивался под завязку. А тут пришлось. Поскольку всё уже переписано и кануло в хистори СВНа, попробую воспроизвести по памяти. $q='SELECT * FROM `account_data` WHERE `id_account`='.$id_account; Уже красиво. В этой таблице без малого пол сотни полей и тащить одно единственное звёздочкой при условии, что веб и мускуль разные железяки - это гробить сетевой интерфейс. Ладно... $resurce=mysql_query($q, $db); Угу. Мало того, что мы загаживаем память стрингами под запрос, дык мы ещё и результат в отдельную переменную пишем. while ($result=mysql_fetch_object($resurce)) { $cash=$result->cash } Каково?! Одноразовый вайль. Шик и блеск! Кошмарный сон! Но это всё фигня. Алгоритм скрипта бы таков: тянем баланс, сравниваем с прилетевшей ценой и, если денег хватает, пишем в базу новый баланс. Вот тут мне окончательно поплохело и я полез за валидолом. Что будет, если прилетит два параллельный запроса? Правильно! Запустятся два скрипта, каждый из которых запросит баланс, запишет новый и ответит игровому серверу Ok. Суперакция. Купи две вещи по цене одной.
А ты говоришь к чему вопрос. Ты себе не представляешь какое количество рук ещё оборвать надо, чтобы мир стал прекраснее. |
KWiT_ - Пн 03 Окт, 2011 10:41 |
Норб, Да, ссылки эти phoenix, То, что они работают - я тоже знаю. И даже знаю как :) Нюанс в том, чтобы сделать ссылку, которая бы передавала нужный параметр.
Что-бы калькулятор, например, можно было вызвать напрямую, а не загружая сначала общую страницу, а потом - по клику - калькулятор Но пока, в связи с завалом в реале, временно прекращаю "вникание в суть". Если что - позже свяжусь посредством ЛС Спасибо всем еще раз |
NecroFilin - Пн 03 Окт, 2011 15:43 |
0печаленный писал(а): А ты говоришь к чему вопрос. Ты себе не представляешь какое количество рук ещё оборвать надо, чтобы мир стал прекраснее. даже не заморачиваюсь над этим, ибо знаю что это не реально
0печаленный писал(а): $q='SELECT * FROM `account_data` WHERE `id_account`='.$id_account; Уже красиво. В этой таблице без малого пол сотни полей и тащить одно единственное звёздочкой при условии, что веб и мускуль разные железяки - это гробить сетевой интерфейс. Ладно... $resurce=mysql_query($q, $db); Угу. Мало того, что мы загаживаем память стрингами под запрос, дык мы ещё и результат в отдельную переменную пишем. while ($result=mysql_fetch_object($resurce)) { $cash=$result->cash } Каково?! Одноразовый вайль. Шик и блеск! Кошмарный сон! ну а я не говорил что все пишут разумно.. просто задача то элементарная,и решается одним запросом |
Норб - Пн 10 Окт, 2011 0:55 |
0печаленный, 0печаленный писал(а): Никогда не лезь в дерьмо, с названьем кратким jQuery.
А можно в порядке общего развития пояснить, на конкретных примерах, пояснить - почему jQuery такое дерьмо? |
phoenix - Пн 10 Окт, 2011 1:51 |
Норб, не буди лихо, пока тихо! |
Watchman - Пн 10 Окт, 2011 1:56 |
все, понеслось |
Норб - Пн 10 Окт, 2011 12:11 |
phoenix, мне реально интересны примеры, в котором Jquery проигрывает чистому Js. Чисто спортивный интерес |
НИК_как_НИК - Пн 10 Окт, 2011 12:53 |
Норб, щас будет чисто дикий ор дикое пояснение опечаленного Все запасаемся попкорном |
phoenix - Пн 10 Окт, 2011 12:56 |
Норб, http://habrahabr.ru/blogs/jquery/112776/ вот тут jquery проигрывает чистому js.. музыку, видео.. |
Норб - Пн 10 Окт, 2011 13:15 |
phoenix, о, благодарствую. Ещё бы пояснения в чем проигрыш. А-то в комментах ничего по этому поводу нету, а с видео и музыкой на js, я особо и не работал |
phoenix - Пн 10 Окт, 2011 17:11 |
Норб, как в чем? он проигрывает музыку и видео =) |
Норб - Пн 10 Окт, 2011 17:28 |
phoenix, |
0печаленный - Пт 14 Окт, 2011 4:49 |
phoenix, Норб, Музыку и видео я могу показать и без жеку. Если вы этого не можете - я бы на месте вашего работодателя поставил вопрос о вашей компетенции. Более того: многие функции жеку реализуемы без применения JavaScript. Стрельба из пушки по воробьям всегда смешна. Кстати, вачман, существует ещё jScript. Компилируемый язык, сходный в синтаксисе с JavaScript. Так что ты с терминологией поаккуратнее. |
phoenix - Пт 14 Окт, 2011 10:46 |
0печаленный, чет как-то слабо затроллил, даже отвечать лень) ты теряешь форму) вопрос вообще не про видео и аудио был, а про недостатки jQuery |
0печаленный - Пт 14 Окт, 2011 11:18 |
phoenix, вопрос был о преимуществе чистого JavaScript над jQery. Сам факт появления такого вопроса говорит о полной некомпетентности. Мне просто нечего сказать такому человеку. Ну... небо - синее, трава - зелёная, а солнце - жёлтое. |
phoenix - Пт 14 Окт, 2011 11:57 |
0печаленный, нда, точно ты не в форме я уж думал что-то дельное услышать.. а то в инете все недостатки сводятся к тому, что надо подключать файл с библиотекой, что она занимает место и что в ней ограниченное количество функций (видимо имелось ввиду, что не реализованы все возможности JS) |
0печаленный - Пт 14 Окт, 2011 12:15 |
phoenix, вообще-то этого более, чем достаточно. Но для чайников поясню: подгрузка и компиляция библиотеки идёт параллельно с распарсировкой кода страницы. Это значит, что функция, которую ты вызовешь в начале страницы, на момент вызова может ещё не существовать. Как результат: вся страница перекошена, а в консоли три страницы ошибок. Использование jQuery делает результат твоей работы непредсказуемым. Вот что обозначает простенькая фраза "надо подключать файл с библиотекой" и любой спец это знает. Фен, ты меня только что очень сильно разочаровал. Извини. |
0печаленный - Пт 14 Окт, 2011 12:38 |
Кроме того, графическая часть библиотеки построена на постоянном отслеживании фокуса средствами JavaScript. Это очень ресурсоёмко. Фактически это дублирование работы браузера. Т.е. процесс с запущенной жекой будет жрать вдвоей больше ресурсов, чем без неё. |
0печаленный - Пт 14 Окт, 2011 13:59 |
Мне в начале года пришлось в это залезть плотненько. Представьте себе: вся библиотека построена на распозновании свойств фокуса события document.onMouseMove. Кроссбраузерно, шоб Билли был зродоров. Т.е. каждое изменение координат курсора мыши исполняет гору кода. Выборка по имени, выборка по id, соответствие результатов выборки выполняемым функциям. Знаете сколько таких изменений на 15" тачбуке, когда я просто вкладку закрываю? Десятки тысяч. Это действительно жутко. Оно же ещё и десяток массивов заявленных параметров хранит. Бедный браузер. Бедная ось. Несчастное железо. Мне реально жалко юзеров, которые из-за кретинства программистов вынуждены покупать новые компы. |
|