»   Список форумов   »   Все обо всем   »   Информационные технологии
 

Вопрос-ответ по веб-программированию, верстке, дизайну

Страницы: 12345678910111213

NecroFilin - Вс 12 Июн, 2011 20:47
Zolcts писал(а):
сути это не меняет  

меняте... если "не запрашиваем" - то данные не передаються, а если "не читаем" - данные пердаються, мы просто их из переменной не читаем

НИК_как_НИК - Вс 12 Июн, 2011 21:06
Zolcts писал(а):
это путь, куда скрипт пытается сохранить картинку.

Странно в коде находил  находил прямой путь сохранения этой картинки. torrents/images даже после единственной удачной загрузки картинка там реально появилась, только при вводе url этой картинки вылетала ошибка, что данная картинка содержит ошибки и не может быть открыта и скачать не получалось и редактировать или просто просмотреть даже через FTP клиентhuh

NecroFilin - Вс 12 Июн, 2011 21:39
НИК_как_НИК писал(а):
только при вводе url этой картинки вылетала ошибка

параметром GetImageSize являеться не урл,а  локальный адрес файла на сервере

НИК_как_НИК - Пн 13 Июн, 2011 10:19
Zolcts писал(а):
Теперь посмотри, это путь, куда скрипт пытается сохранить картинку.

вылетает 404tub
NecroFilin писал(а):
и убери @

убрал но эффект нулевой, всё та же ошибка что это не картинка....

Zolcts - Пн 13 Июн, 2011 13:16
НИК_как_НИК писал(а):
Странно в коде находил  находил прямой путь сохранения этой картинки. torrents/images

Угу, одна проблема - туда скрипт должен ложить картинку после проверки, картинка ли это. Для того, чтобы проверить, скрипт закачивает подсунутую картинку, ложит её по адресу временному /var/tmp/phpNSqaEn. Точнее, пытается положить. Очевидно, что скрипт не сумеет положить туда файл, ибо даже расширения нет. Далее, это будет работать только с включённым mod_tmp, что тоже не всегда, на бесплатных, например, фиг найдёшь, чтоб было включено. Но мне кажется, у тебя включено.


NecroFilin писал(а):
параметром GetImageSize являеться не урл,а  локальный адрес файла на сервере

запилили поддержку по урл в php 4.1 huh

НИК_как_НИК писал(а):
вылетает 404

ага, и должно вылетать. Ибо это путь, а не урл. Смекаешь? huh

НИК_как_НИК - Пн 13 Июн, 2011 15:51
Zolcts писал(а):
Смекаешь

кажется немного да. Короче Чтобы себе мозги в итоге не парить удалил просто эти 2 строчки, теперь буду искать bbcodes как таковой [img] работает но нет в самой панели, буду исктаь.
NecroFilin, Zolcts, Спасибо большое за помощь, узнал много новогоrolleyes

Zolcts - Пн 13 Июн, 2011 15:55
НИК_как_НИК
нуу, проверку не починили.. Просто сложно угадывать, что там в коде, не видя самого кода blink

НИК_как_НИК писал(а):
bbcodes как таковой [img] работает но нет в самой панели

возьми любой, который в панели есть, скопируй да переделай на img smile

НИК_как_НИК - Пн 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, не могу найти сайт Хде скачалsad
Zolcts, Уже нашёл яваскрипт даже называется bbcodes осталось в нём поразбираться, он в 1 строчку записан блин не удобно, есть прога которой можно это деликатно подредактировать или чтобы она сама расположила всё построчно?

Zolcts - Вс 19 Июн, 2011 17:50
НИК_как_НИК писал(а):
Уже нашёл яваскрипт даже называется bbcodes осталось в нём поразбираться, он в 1 строчку записан блин не удобно

открой нотепадом++ и поставь галочку около "перенос строк" blink

НИК_как_НИК - Вс 19 Июн, 2011 19:32
Zolcts, Ещё за это не брался открыл увидел что сплошником закрыл спросил у вас, забыл
Спасибо всё равноblink

Zolcts - Пн 20 Июн, 2011 22:09
Zolcts
делай-делай, тут надо быть упорным blink


Как передать $_GET в инклюд при регистр_глобалс = офф? blink  При включённом всё проходит, при выключенном - нет. Загнать в переменную в первом файле перед инклюдом второго - не вариант, походу, не передаётся нифига. Инклюдить  include "my_file.php?do=".$_GET['var']."; только и приходит на ум wacko  
мб, у меня сервак параноиком собран..

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
было всё так просто dry    я же говорю, при регистр глобалс = офф этот номер не проходит.
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)huh  если не 0 то мультирасовый

0печаленный - Сб 25 Июн, 2011 14:23
NecroFilin, шикарно. Я немножко по-другому сделал, надо в понедельник тестануть что лучше. Хотя в плане чистой математики твоё решение, конечно, лучше.

NecroFilin - Сб 25 Июн, 2011 22:57
0печаленный, а ты как сделал? (:

0печаленный - Вт 28 Июн, 2011 23:50
NecroFilin, А не скажу.dry  Задачка должна оставаться задачкой. Кстати, тестанул твой вариант. Медленнее. Математическая красивость не выдержала столкновения с реалиями мускуля.sad

NecroFilin - Ср 29 Июн, 2011 12:55
0печналенный, может сумму два рза считает? не пробовал " sum(race) as s, (count(race)-s)*s " ?

0печаленный - Чт 30 Июн, 2011 13:43
NecroFilin, ну и это тоже. И операций много. Мускуль всё-таки не заточен под арифметику. (ета нипацказка. Нипацказка ета.huh )

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
НИК_как_НИК, форма без экшна, оно вообще работает? blink  
<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
НИК_как_НИК, сбрасываться и должно, форма всегда сбрасывается huh  разве что запоминать введённые данные.
Результат должен быть, мб, за дизайном не видно? Могло вылезти в самом верху страницы.
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 'выбери чё-нить';}

Проверил, фунциклирен blink
з.ы. 2 ифа, а не елсе, ибо остального скрипта не видно, всё равно подгонять надо будет

Zolcts - Сб 16 Июл, 2011 10:09
phoenix писал(а):
тут можно почитать про селекты, у него селект правильный

да не, мне селекты даром не нужны, давно решил, что радиобаттон лучше. Ну или чекбоксы. Потому и скрипт не правильно написал, ибо не учёл, что селект tub
з.ы. пишу вторым постом, ибо первый править не могу, отваливается с ошибкой мускуля. Кавычки...

НИК_как_НИК - Сб 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, Спасибо всё сделал рабочимcool

phoenix - Сб 16 Июл, 2011 20:03
Zolcts писал(а):
мне селекты даром не нужны, давно решил, что радиобаттон лучше. Ну или чекбоксы.

то же самое, что сравнивать что лучше - руки или ноги

terrible666 - Вс 17 Июл, 2011 15:30
phoenix, однозначно женские стройные ноги cool

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, а это разрешено, доступ к этому файлу? Вроде, только через апи разрешили данные получать unsure
Если можно -
0. Создаём пых файл, папку для кеша.
1. пыхом открываем папку кеша, смотрим есть ли там файло и когда создано. Если 6+ часов - перезаписываем, файл_гет_контентс тот скрипт, эхо всех данных.
2. Аяксом опрашиваем наш пых файл (он-то уже на нашем серваке...).

Watchman - Вт 19 Июл, 2011 19:39
Zolcts, хз, нашел ссылку в граневской вики blink
я кажется понял, если разлогиниться в гранях и перейти: http://www.ereality.ru/ajax/clan_members/?cid=49 то получим этот пустой обьект "var ClanMembers = {};" tub

Zolcts - Вт 19 Июл, 2011 19:44
Watchman писал(а):
если разлогиниться в гранях

точно. Видать, действие запрета. Значит, через апи, на гапи этого нет.

Watchman - Вт 19 Июл, 2011 19:50
Zolcts, http://gapi.ereality.ru/clans/49.txt  - 404 sad

NecroFilin - Вт 19 Июл, 2011 20:22
Watchman, unsure  там щас через апи, а не черег гапи
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 = {};

wink  

Ежели не юзать курл и не подсовывать логиныпассы, то нифига нам по той ссылке не дадут. Кроме бана по IP сервера, об этом писалось уже. ПРавда, банов пока не давали, вроде tub
0печаленный писал(а):
Не надо вводить человека в заблуждение.

Я, вообще-то, спросил, работает ли оно. Да, по дефолту экшн идёт в тот же файл. Но далеко не всегда нужно так huh

phoenix - Ср 20 Июл, 2011 18:21
Zolcts, этот скрипт будет работать для юзера, который в гранях в другой вкладке.. и ничего не надо подсовывать.. страницу же открывает браузер юзера, а не сайт
и по поводу бана, нигде в законах не записано, что нельзя авторизовываться через курл.. играть "ботом" нельзя

Zolcts - Ср 20 Июл, 2011 19:07
phoenix писал(а):
и по поводу бана, нигде в законах не записано

Невидимка писал(а):
Напоминаю, что разрешается осуществлять запросы ТОЛЬКО через API. Обращаться напрямую к скриптам игры ЗАПРЕЩЕНО.

http://forum.ereality.ru/topic135869/page1.html#post3594365
Ну, раз не сказано huh  

phoenix писал(а):
страницу же открывает браузер юзера, а не сайт

а в логах будет указан реферер..

phoenix писал(а):
этот скрипт будет работать для юзера, который в гранях в другой вкладке..

А разлогинится - и аминь? wacko

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 писал(а):
он вообще в заголовке документа передается, ты о каких логах? и причем тут реферрер вообще? он не проверяется.. это же апи

да нет, я про реферер к тому, что страницу со скриптом, ежели его аяксом запросить, откроет клиент, я не спорю.
Но в логах ГРанёного сервера будет запрос с реферером нашего сервера. А это подпадает под "обращение к скриптам напрямую" smile

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
Вопрос:
Кто делал в ДЛЕ события по клану, помогите плиз консультацией, а то я что то затупил huh

Zolcts - Пт 22 Июл, 2011 19:00
0печаленный писал(а):
Его просто не возможно аяксом со стороны подгрузить

http://code.google.com/p/cross-domain-ajax/source/browse/trunk/cdajax.js
Хорошо, невозможно, так невозможно. Выходит, невозможное - возможно smile

0печаленный писал(а):
И реферер обойти - как нефиг делать.

забавно, не первый раз замечаю, что повторяете то, что я уже говорил. И - давайте обойдём реферер без прослойки на другом языке, чисто яваскриптом? smile
А если с прослойкой - то тут не может быть и вопросов о том, что подгрузить невозможно.



zzzSnk, А что не получается?

NecroFilin - Пт 22 Июл, 2011 19:25
zzzSnk, blink а какая разница в ДЛЕ или нет?

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()

Ничего не напоминает?dry

Норб - Пт 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 ?
smile

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 для joomlarolleyes
или посоветуйте что то подобное для создания веб галереиunsure

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 стран - цельные конгломераты. Но енто ты проверь. Если поле айпишников может быть рваным, то этот подход не канает. Твой, впрочем, тоже.biggrin   Тогда что-то другое надо думать.
Короче, в заданных условиях тебе поможет запрос 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

Проблема в том как одним запросом все нужные страны выбрать. Как выбирать, по чем группировать? huh

Норб - Ср 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к одинаковых. :)


laugh    Не, все не так запущено. - Одна переменная - один диапазон - одна айдишка страны. smile

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
Тестилось на воркстанции под денвером. Где там две секунды?blink

0печаленный - Чт 11 Авг, 2011 10:11
АААА!!! Я худею с котовского.biggrin biggrin biggrin

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
Невидимка, поправь что ли, а то кто-нибудь как заэскуэлит да заинъектит. biggrin  Я, например. rolleyes

USF - Пт 12 Авг, 2011 13:30
доброго дня
возникла такая ситуация  - пишу данные в текстовый файл.
потом построчно данные парсятся и выводятся на страницу.
есть возможность удалить определенную строку.
можно было легко реализовать, если бы я читал файл через file("text.txt") в массив.
НО я читаю через fgets построчно, ибо файл может быть довольно большим и все писать в переменную глупо.
но стал вопрос, как мне при таком подходе удаление реализовать?
единственный нормальный вариант, который мне в голову пришел - завести еще один файл и при перебирании строк построчно записывать во второй файл КРОМЕ той, что нужно удалить. а потом тупо скопировать содержимое второго в первый или даже просто переименовать его.  tub
но ведь возможно есть куда красивее решение dry
cool

phoenix - Пт 12 Авг, 2011 15:25
красивее.. хранить данные в бд и удалять конкретную запись? таблицу не надо будет перезаписывать smile

USF - Сб 13 Авг, 2011 0:47
phoenix, понятное дело. но реализация нужна без БД sad

intlex - Чт 18 Авг, 2011 14:29
USF, чем не устраивает xml?

phoenix - Чт 18 Авг, 2011 15:39
intlex, это было бы тоже самое, что и через file()

XpressMusic - Пт 19 Авг, 2011 1:47
levakisso, morfeoshow нормcool

intlex - Сб 20 Авг, 2011 13:17
USF, phoenix, если одна строка - одна запись, то может "обнулять" такую строку и в дальнейшем пустые пропускать?

XpressMusic - Пн 22 Авг, 2011 15:38
Научите с API обращаться unsure
В ЛС или ЛЧ если можна...

НИК_как_НИК - Пн 22 Авг, 2011 15:55
XpressMusic, http://forum.ereality.ru/topic144965/page1.html вот тут примеры
Цитата:
Пример рейтинга: http://v-clan.ru/alien.txt

Разбери сам скрипт и более менее что-то поймёшь дальше пытайся писать сам
Ну по крайней мере я так учусьblink

XpressMusic - Пн 22 Авг, 2011 21:34
НИК_как_НИК, да что же там розберёшься если JS не знаю wink и php на начальном уровне

intlex - Вт 23 Авг, 2011 1:16
XpressMusic, ты б у сокланов спросил че ли tub

intlex - Вт 23 Авг, 2011 1:22
0печаленный, Норб, осилил прочитать.... зачем IP хранить в строке, это ж обычный integer 4 байта blink  
ps. а ещё провайдеры собираются переходят на IPv6

Chkalov - Вт 23 Авг, 2011 1:53
intlex писал(а):
это ж обычный integer 4 байта

беззнаковый

НИК_как_НИК - Вт 23 Авг, 2011 9:24
XpressMusic, ну тогда читай учебник пхп потом скрипт сам смотри если не знаешь что это то поиск тебе в помощь, я же тоже не  очень и php могу только простенький скрипт написатьcool давай не ленись поверь тут нужна практика практика и снова практикаexcl

KWiT_ - Вт 23 Авг, 2011 10:10
XpressMusic писал(а):
да что же там розберёшься если JS не знаю

А что знаешь тогда?

НИК_как_НИК - Вт 23 Авг, 2011 14:23
Есть скрипт в нём 5 калькуляторов, если например я считаю первый калькулятор затем второй то итоги первого сбрасываются. Мне сказали что нужно поменять логику php на  JS проюзал инет не нашёл что же такое логика php и как её поменять на js. Что же такое эта логика может знает кто? и что можете ещё посоветовать чтобы если " я считаю первый калькулятор затем второй то итоги первого сбрасываются." такого не происходило.

Норб - Вт 23 Авг, 2011 18:24
intlex, mellow   хз, у меня в базе сидят ip в инте после функции ip2long

НИК_как_НИК,  
Самый простой (и не очень красивый способ!!!!!excl  ).
Все калькуляторы пихаем в одну форму. В скрипте уже данные по какой-то логикераспределяются по своим формулам и общатываются где надо. В формах в полях ввода  value="$_POST['переменная']". Плохо это тем, что при обращении к скрипту происходит работа сразу всех калькуляторов, за что, собственно, надо бить по пальцам.

Можно при пересчетах писать новые данные в сессию или куки, но тоже красотой такой метод не обладает.

Лучше всего это все дело организовать на Js.

НИК_как_НИК писал(а):
Мне сказали что нужно поменять логику php на  JS

Тут, я полагаю, подразумевалось то, что скрипт должен быть написать на Яваскриптах. То бишь все подсчеты происходят без перезагрузки страницы, потому данные из форм пропадать не будут.

Тут был я blink

НИК_как_НИК - Вт 23 Авг, 2011 19:06
Норб, а у меня JS хромой я давно им не пользовался =( Ну ладно спасибо за ответcool

intlex - Вт 23 Авг, 2011 19:17
НИК_как_НИК писал(а):
Мне сказали что нужно поменять логику php на  JS

Сдается мне нужно использовать ajax.

НИК_как_НИК - Вт 23 Авг, 2011 19:26
intlex писал(а):
Сдается мне нужно использовать ajax.

час от часу не легче dry

Норб - Вт 23 Авг, 2011 20:51
intlex, blink  нафига?

0печаленный - Ср 24 Авг, 2011 3:14
НИК_как_НИК писал(а):
Есть скрипт в нём 5 калькуляторов, если например я считаю первый калькулятор затем второй то итоги первого сбрасываются. Мне сказали что нужно поменять логику php на  JS проюзал инет не нашёл что же такое логика php и как её поменять на js. Что же такое эта логика может знает кто? и что можете ещё посоветовать чтобы если " я считаю первый калькулятор затем второй то итоги первого сбрасываются." такого не происходило.

Ну в общем и целом норб всё правильно расписал.
Логика PHP - это клиент/сервер. Ты отправил запрос, получил код страницы.
Логика JavaScript - это логика прикладного программирования. Ничего никуда не отправляется, всё происходит в одной программе. В данном случае в браузере. И такой подход в твоём случае единственно верный, поскольку не грузит сервер.

intlex - Вт 30 Авг, 2011 22:26
0печаленный, Норб, оригинально-с передавать вычислительный код клиентской стороне. unsure

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>

blink blink

НИК_как_НИК - Ср 31 Авг, 2011 11:23
FrostKarina, не помогло

Норб - Ср 31 Авг, 2011 12:05
intlex, формулы калькуляторов для граней это такой секрет, ради которого стоит использовать аякс и скрывать вычислительный код mellow

FrostKarina, blink  В коде подразумевалась что по клику будет выполняться арифметическая строка типа(2 + 2), которая находиться в соответсвующем инпуте форме, а сабмит не будет происходить? blink

Норб - Ср 31 Авг, 2011 12:11
P.S. Посоветуйте хорошую литературу по глубокому изучению SQL. smile

Chkalov - Ср 31 Авг, 2011 14:13
Норб, не думаю, что есть смысл (и есть литература) по изучению SQL в принципе. Советую ориентироваться на конкретную СУБД- interbase(firebird), mssql, mysql и тд.  поскольку каждая поддерживает или не поддерживает различные функции, процедуры, триггеры и тд

Норб - Ср 31 Авг, 2011 16:36
Chkalov, на данный момент интересует mysql на движке innoDb. Чувствую что плаваю в триггерах, индексациях и транзакциях и хочу этот недостаток устранить. Может будут советы по литературе, сайту или тп? smile

Chkalov - Чт 01 Сен, 2011 12:19
Норб, http://www.infanata.com вот тут есть масса полезной литературы. Триггеры только в 5 версии появились (если я не ошибаюсь), сам не искал каких-то "углубленных" книг, знаком с ними из интербэйса, смотрел только синтаксис, но уверен что можно там найти что почитать. Там нмого разных "уровней" пользователя, если под твоим книга не доступна будет - напиши.

Норб - Чт 01 Сен, 2011 16:01
Chkalov, Большое человеческое спасибо. На выходных почитаю, что на сайте есть и обязательно отпишусь smile

intlex - Пт 02 Сен, 2011 3:18
Норб, если говорить о матчасти, то читать стандарт SQL-92.

FrostKarina - Пт 02 Сен, 2011 15:38
НИК_как_НИК писал(а):
не помогло

это печально

Норб писал(а):
В коде подразумевалась ...

Код соответствует ТЗ на 60%mellow

Норб - Пт 02 Сен, 2011 16:03
FrostKarina, wub  Я бы с вами с удовольствием занялся бы сексом. Люблю всякого вида тру извращения wub wub

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-ом?
Т.е. можно ли задать прямую ссылку на подгружаемую часть страницы?

blink описание $.ajax не читал? там ж описано что можно

KWiT_ - Пн 26 Сен, 2011 16:06
NecroFilin, Хреново читал, наверно biggrin
Перечитаю

KWiT_ - Пн 26 Сен, 2011 18:05
Перечитал... то ли у меня с мозгами от реала перекос, но не понял...
Если что - пишите ЛС, дам аську... blink

Норб - Пн 26 Сен, 2011 23:51
KWiT_, тут вопрос в параметре data метода $.ajax? Или я вообще не врубился в поставленную задачу? huh

Норб - Пн 26 Сен, 2011 23:53
P.S. Я ненавижу prototype.js mad mad mad

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: не допустить этого.

Слабо?cool

NecroFilin - Пт 30 Сен, 2011 4:32
0печаленный писал(а):
Дано: Существует таблица, в которой написаны аккаунт и баланс кредитов на этом аккаунте. Со стороннего сервера приходит http-запрос: такой-то аккаунт хочет потратить столько-то кредитов.
Задача1: списать одну цену за две покупки.
Задача 2: не допустить этого.
wacko вначале объясни чё ты хочешь... а потом подумаем

phoenix - Пт 30 Сен, 2011 9:48
0печаленный писал(а):
С этого места дальше можно не читать.

интересно как ты на php пишешь, если с таких мест не читаешь:) строку написал - удалил из своей памяти? laugh

NecroFilin - Пт 30 Сен, 2011 13:11
phoenix, unsure  $ в  яваскрипте  - признак jQuery

phoenix - Пт 30 Сен, 2011 16:01
NecroFilin, mellow  http://goo.gl/H6oZq

Норб - Сб 01 Окт, 2011 17:30
NecroFilin, http://api.prototypejs.org/dom/dollar/ mellow

KWiT_, Это так... Крик души был...
А по твоему вопросу :

KWiT_ писал(а):
общий шаблон - это одна страница, калькулятор - это внутренность одного блока
Вот и хочу сделать ссылку, которая бы автоматически загружала шаблон гайда, но с разделом "калькулятор". чтобы остальные ссылки гайда были активны... сразу же


Плохо понимаю в чем тут проблема и почему подгрузку калькулятора надо делать на Яваскриптах.
На php:

1. Берем шаблон
2. Берем калькулятор
3. HTML калькулятора записываем в переменную.
4. Переменную цепляем к шаблону (По обстоятельствам с проверкой на iiset)
5. Профит.

Хз, или правильно понял суть проблемы blink

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(). В ней вся логика подгрузки страниц уже есть. huh

~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 ?unsure

Watchman - Сб 01 Окт, 2011 19:54
~Igash~ писал(а):
а в html ?

о_О
на улице 2011, юзай стили blink

~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>laugh laugh

Watchman - Вс 02 Окт, 2011 13:19
~Igash~, внутренние стили в этом случаи не рекомендуется использовать

phoenix - Вс 02 Окт, 2011 13:30
Watchman, кем не рекомендуется?

НИК_как_НИК - Вс 02 Окт, 2011 13:41
Watchman, ХЗ как на счёт не рекомендуется, но вот насчёт того что это не удобно, это да

Watchman - Вс 02 Окт, 2011 13:53
phoenix писал(а):
кем не рекомендуется?

ну например людьми, которые понимают, что изменить стиль ссылки(как в этом случаи) намного удобней в одном файле, нежели править его на каждой странице, основы грамотной верстки huh

~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 в стиле конкретного элемента. Или нет? Или каждому отдельный класс?biggrin
Таких тысячи примеров привести можно. В том числе и трёхкаскадных. Всё зависит от сложности структуры вёрстки.

Watchman - Вс 02 Окт, 2011 20:04
0печаленный, ты как и phoenix сгущаешь краски, ведь речь никаким образом не ишла о полном отказе от использования внутренних стилей huh  
0печаленный писал(а):
Или нет? Или каждому отдельный класс?biggrin

а разделение стилей по классам и id никто не отменял, так между прочим wink

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 если не хватает.
Как будет выглядеть скрипт списания средств?

и в чём сложность?blink
SELECT if({$price}<=`balance`,1,0) FROM table WHERE `id_account`={$id_account}
blink

NecroFilin - Вс 02 Окт, 2011 21:42
0печаленный писал(а):
Насколько мне не изменяет мой склероз, самые яркие краски видят идиоты

blink

Watchman - Вс 02 Окт, 2011 21:58
0печаленный, blink  не понимамаю каким боком тут JQ, но, пожалуй, оставлю тебя на едине с твоей священной форумной войной против него и аякса blink

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 такое дерьмо? huh

phoenix - Пн 10 Окт, 2011 1:51
Норб, mad  не буди лихо, пока тихо!

Watchman - Пн 10 Окт, 2011 1:56
все, понеслось laugh

Норб - Пн 10 Окт, 2011 12:11
phoenix, мне реально интересны примеры, в котором Jquery проигрывает чистому Js. Чисто спортивный интерес rolleyes

НИК_как_НИК - Пн 10 Окт, 2011 12:53
Норб, щас будет чисто дикий ор дикое пояснение опечаленного
Все запасаемся попкорном

phoenix - Пн 10 Окт, 2011 12:56
Норб, http://habrahabr.ru/blogs/jquery/112776/ вот тут jquery проигрывает чистому js.. музыку, видео..

Норб - Пн 10 Окт, 2011 13:15
phoenix, о, благодарствую. Ещё бы пояснения в чем проигрыш.  А-то в комментах ничего по этому поводу нету, а с видео и музыкой на js, я особо и не работал smile

phoenix - Пн 10 Окт, 2011 17:11
Норб, как в чем? он проигрывает музыку и видео =)

Норб - Пн 10 Окт, 2011 17:28
phoenix, laugh laugh laugh

0печаленный - Пт 14 Окт, 2011 4:49
phoenix, Норб, Музыку и видео я могу показать и без жеку. Если вы этого не можете - я бы на месте вашего работодателя поставил вопрос о вашей компетенции. Более того: многие функции жеку реализуемы без применения JavaScript. Стрельба из пушки по воробьям всегда смешна.
Кстати, вачман, существует ещё jScript. Компилируемый язык, сходный в синтаксисе с JavaScript. Так что ты с терминологией поаккуратнее.biggrin

phoenix - Пт 14 Окт, 2011 10:46
0печаленный, чет как-то слабо затроллил, даже отвечать лень) ты теряешь форму) вопрос вообще не про видео и аудио был, а про недостатки jQuery

0печаленный - Пт 14 Окт, 2011 11:18
phoenix, вопрос был о преимуществе чистого JavaScript над jQery. Сам факт появления такого вопроса говорит о полной некомпетентности. Мне просто нечего сказать такому человеку. Ну... небо - синее, трава - зелёная, а солнце - жёлтое.

phoenix - Пт 14 Окт, 2011 11:57
0печаленный, нда, точно ты не в форме sad  я уж думал что-то дельное услышать.. а то в инете все недостатки сводятся к тому, что надо подключать файл с библиотекой, что она занимает место и что в ней ограниченное количество функций (видимо имелось ввиду, что не реализованы все возможности JS)

0печаленный - Пт 14 Окт, 2011 12:15
phoenix, вообще-то этого более, чем достаточно. Но для чайников поясню: подгрузка и компиляция библиотеки идёт параллельно с распарсировкой кода страницы. Это значит, что функция, которую ты вызовешь в начале страницы, на момент вызова может ещё не существовать. Как результат: вся страница перекошена, а в консоли три страницы ошибок.
Использование jQuery делает результат твоей работы непредсказуемым.
Вот что обозначает простенькая фраза "надо подключать файл с библиотекой" и любой спец это знает.
Фен, ты меня только что очень сильно разочаровал. Извини.

0печаленный - Пт 14 Окт, 2011 12:38
Кроме того, графическая часть библиотеки построена на постоянном отслеживании фокуса средствами JavaScript. Это очень ресурсоёмко. Фактически это дублирование работы браузера. Т.е. процесс с запущенной жекой будет жрать вдвоей больше ресурсов, чем без неё.

0печаленный - Пт 14 Окт, 2011 13:59
Мне в начале года пришлось в это залезть плотненько. Представьте себе: вся библиотека построена на распозновании свойств фокуса события document.onMouseMove. Кроссбраузерно, шоб Билли был зродоров. Т.е. каждое изменение координат курсора мыши исполняет гору кода. Выборка по имени, выборка по id, соответствие результатов выборки выполняемым функциям. Знаете сколько таких изменений на 15" тачбуке, когда я просто вкладку закрываю? Десятки тысяч.
Это действительно жутко. Оно же ещё и десяток массивов заявленных параметров хранит.
Бедный браузер. Бедная ось. Несчастное железо.
Мне реально жалко юзеров, которые из-за кретинства программистов вынуждены покупать новые компы.

Страницы: 12345678910111213