PHP.SU

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

Страниц (1): [1]

> Найдено сообщений: 15
zusicks438 Отправлено: 01 Сентября, 2013 - 19:16:46 • Тема: Как узнать, удалось ли получить данные из MySQL? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 167
Спасибо, вопросов больше не имею Улыбка
zusicks438 Отправлено: 01 Сентября, 2013 - 18:53:04 • Тема: Как узнать, удалось ли получить данные из MySQL? • Форум: Вопросы новичков

Ответов: 2
Просмотров: 167
Доброго времени суток!

Я, конечно, понимаю, что вопрос несерьезный и истина где-то рядом. Но все же.

С помощью функции mysql_query сохраняется результат SQL-запроса (SELECT) в переменную $vresult:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $vresult = mysql_query($vsql, $vconnect);


После этого результат обрабатывается так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. while ($row=mysql_fetch_array($vresult, MYSQL_NUM))
  2. {
  3. код
  4. }


Как водится, даже если MySQL отдала пустой результат, функция mysql_query не возвратит false. И тут проблема: как понять, что результат все-таки пустой? Можно, конечно, сделать так:
CODE (htmlphp):
скопировать код в буфер обмена
  1. if (!$row=mysql_fetch_array($vresult))
  2. {
  3. echo 'Error!';
  4. }
  5. else
  6. {
  7.    while ($row=mysql_fetch_array($vresult, MYSQL_NUM))
  8.    {
  9.    код
  10.    }
  11. }

Но только тогда первая строка будет пропущена.

Лично я решил этот вопрос с помощью замены "while" на "do..while". Но есть ли какой-то способ, при котором можно было бы оставить именно первый вариант цикла?
zusicks438 Отправлено: 05 Июля, 2013 - 19:10:40 • Тема: Проблема со слешами и кавычками в strtr() • Форум: Вопросы новичков

Ответов: 2
Просмотров: 132
Все, вопрос закрыт, недоглядел в мануале:
Цитата:
Если длины строк from и to отличаются, "лишние" символы в более длинной строке не используются.

(Добавление)
AlexAnder пишет:

Да, спасибо, разумеется так. Теперь все работает.
zusicks438 Отправлено: 05 Июля, 2013 - 19:02:23 • Тема: Проблема со слешами и кавычками в strtr() • Форум: Вопросы новичков

Ответов: 2
Просмотров: 132
Доброго времени суток.

Вопрос, наверное, детский, но разобраться никак не могу. Есть исходная строка $kimage:
Цитата:
/var/www/owner/data/www/site.ru/bla-bla-bla/image.jpg

Очень хочется изменить в этой строке выделенную часть. Делаю вот так:
PHP:
скопировать код в буфер обмена
  1. $kimage = strtr($kimage, "/var/www/owner/data/www/", "http://");

И в результате получаю нечто совершенно невразумительное, дикая мешанина из слешей, букв и двоеточий.

Откуда растет проблема? Вроде же для экранирования используется другой слэш (\). Что я упустил?
zusicks438 Отправлено: 14 Апреля, 2013 - 17:53:53 • Тема: Разная кодировка в адресной строке и в ссылках • Форум: Кодировки и все смежное

Ответов: 0
Просмотров: 1805
Доброго времени суток.

Методом GET передаю кириллический параметр, допустим, так:
Цитата:
http://url.com/list.php?okrug=ЦО

Естественно, браузер передает вот это:
Цитата:
http://url.com/list.php?okrug=%D6%CE

Я это дело перегоняю в нормальный UTF-8:
PHP:
скопировать код в буфер обмена
  1. $_GET['okrug'] = urldecode($_GET['okrug']);
  2. $_GET['okrug'] = iconv("windows-1251", "UTF-8", $_GET['okrug']);


Все нормально, работает.

Проблема в том, что потом нужно вот этот параметр вывести в ссылку на странице, примерно так:
PHP:
скопировать код в буфер обмена
  1. echo '<a href="http://url.com/list.php?okrug='.$_GET["okrug"].'">Текст ссылки</a> ';


Но выводится она уже в таком виде:
Цитата:
http://url.com/list.php?okrug=%D0%A6%D0%9E


А мне нужно %D6%CE. Если честно, не совсем понимаю, что происходит. Думал, что это UTF-8 нужно снова перевести в Win1251, но тогда кракозябры получаются еще длиннее.

Не поможете найти верное решение? Огорчение
(Добавление)
Все, разобрался. Нужно перед выводом ссылки сделать обратное преобразование вот таким способом:
PHP:
скопировать код в буфер обмена
  1. $_GET['okrug'] = iconv("UTF-8", "windows-1251", $_GET['okrug']);
  2. $_GET['okrug'] = urlencode($_GET['okrug']);


Совсем забыл про encode и decode! Улыбка
zusicks438 Отправлено: 01 Апреля, 2013 - 18:03:25 • Тема: Почему так странно работает classname? • Форум: JavaScript & VBScript

Ответов: 9
Просмотров: 1825
Цитата:
А мне то за что? Плюсанул SAD'у, теперь 41.

За разжевывание по классам. В любом случае спасибо.
zusicks438 Отправлено: 01 Апреля, 2013 - 17:58:43 • Тема: Почему так странно работает classname? • Форум: JavaScript & VBScript

Ответов: 9
Просмотров: 1825
Да, логично. Буду иметь в виду.

Цитата:
Либо я могу ему щас за вас поставить, либо подождете пока у вас будет 50 сообщений.

А Вам кто поставит Радость А на "Жалобу" тут нельзя нажать, чтобы попросить жамкнуть "Спасибо" (на 4pda есть такая система)?
zusicks438 Отправлено: 01 Апреля, 2013 - 17:53:14 • Тема: Почему так странно работает classname? • Форум: JavaScript & VBScript

Ответов: 9
Просмотров: 1825
SAD пишет:
if(document.getElementById(kid).className=="kaddress")

ничего не потеряли?

Потерял, точно. Спасибо, теперь все работает.

Цитата:
Потому, что св-во className содержит строку, в которой через пробел может быть сколько угодно названий классов.
Соответственно тупое сравнение не прокатит.
Нужно искать вхождение подстроки.

Вроде уже к делу не относится, но стало интересно. Ведь className относится именно к выбранному элементу, разве он может содержать что-то кроме актуального названия класса?


А сколько сообщений надо написать, чтобы сказать "Спасибо"? Не нашел этого в правилах.
zusicks438 Отправлено: 01 Апреля, 2013 - 17:22:40 • Тема: Почему так странно работает classname? • Форум: JavaScript & VBScript

Ответов: 9
Просмотров: 1825
Доброго времени суток.

Есть элементарный код (посмотреть пример страницы можно здесь):

CODE (javascript):
скопировать код в буфер обмена
  1. <script>function showdiv(kid) {if(document.getElementById(kid).className="kaddress") document.getElementById(kid).className="kaddressvisible"; else document.getElementById(kid).className="kaddress";}</script>

CODE (html):
скопировать код в буфер обмена
  1. <style>.kaddress{visibility: hidden; position: absolute;} .kaddressvisible{visibility:visible; position: absolute; background-color: #ffffff;}</style>
  2. <span onclick=showdiv("kdiv1") style="display:block;">Просмотреть все адреса</span>
  3. <div id="kdiv1" class="kaddress">Авиамоторная ул., д. 10</div>


Что делает код: при нажатии на span показывает div (меняя класс), при повторном нажатии скрывает div (меняет класс обратно).

Почему в первый раз класс меняется, а вот обратно эта штука работать не хочет?

В принципе также буду рад, если кто-то подскажет, как можно выставить свойство visibility напрямую, не прибегая к изменению класса. Не силен я в JavaScript, но не привлекать же стороннего программиста ради трех строчек кода.
zusicks438 Отправлено: 29 Марта, 2013 - 17:55:22 • Тема: Возможно, вы искали... - как это реализуется? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 652
Хм...да, все становится более понятным. Сильно заморачиваться в данном случае не имеет смысла, но jqueryuU autocomplete, учет раскладки и теги действительно сильно облегчат жизнь. Спасибо.
zusicks438 Отправлено: 28 Марта, 2013 - 20:04:40 • Тема: Возможно, вы искали... - как это реализуется? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 652
Спасибо, это тоже очень полезная штука, которая отчасти решает данную проблему.

Но все же изначально был интересен вариант, когда я уже ввел запрос, и если запрос оказался с опечаткой, то скрипт на эту опечатку должен указать ("возможно, вы имели в виду такое-то слово")
zusicks438 Отправлено: 28 Марта, 2013 - 18:09:58 • Тема: Возможно, вы искали... - как это реализуется? • Форум: Вопросы новичков

Ответов: 10
Просмотров: 652
Доброго времени суток.

Не знал, куда написать, решил в вопросы новичков. Думаю, всем хорошо знаком механизм поиска в Google. В частности, если Вы вводите запрос типа "phhp", то поисковик выдаст "Возможно, вы имели в виду: php".

Долго думал, каким образом это вообще работает, но ни одной умной мысли на этот счет так и не появилось. Так как все-таки обрабатывается запрос и возможна ли реализация такой проверки на обычном сайте?
zusicks438 Отправлено: 29 Августа, 2012 - 14:23:58 • Тема: В Opera не работает функция • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 1398
tuareg,
да я понимаю, не самая правильная реакция на просьбу, но надеялся, что все же получится обойтись кодом,
но до меня тут методом тыка дошло, в чем дело. Судя по всему Opera уже где-то использует переменную "parent" в служебных целях. Поменял название переменной на "vparent" и все заработало Улыбка
zusicks438 Отправлено: 29 Августа, 2012 - 13:57:21 • Тема: В Opera не работает функция • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 1398
IllusionMH пишет:
и где эта переменная должна задаваться, чтобы условие сработало

CODE (javascript):
скопировать код в буфер обмена
  1. parent = actual.parentNode;

Так вот же. Условие истинно всегда, кроме первого раза. В принципе если в объявлении parent что-нибудь присвоить, то можно вообще без этого условия.

Суть еще и в том, что если переменная глобальная, то в Opera не работает даже вот это:
CODE (javascript):
скопировать код в буфер обмена
  1. parent = actual.parentNode;
  2.         parent.className = "red";

Хотя если сделать локальную, то все работает:
CODE (javascript):
скопировать код в буфер обмена
  1. var parent = actual.parentNode;
  2.         parent.className = "red";
zusicks438 Отправлено: 29 Августа, 2012 - 13:34:05 • Тема: В Opera не работает функция • Форум: JavaScript & VBScript

Ответов: 4
Просмотров: 1398
Всем доброго времени суток.

Собственно, есть кучка картинок. При нажатии на одну из картинок передаем в функцию URL видео и собственно сам объект (через this). При этом функция вставляет URL в блок "video", а рамка у родительского элемента (структура такая: <li><img></li>, то есть рамка у li) меняется с зеленой на красную. Если тыкаем по другой картинке, то рамка у прошлой картинки снова становится зеленой, а у новой - красной.

Проблема как раз в смене цвета рамки. Вот код функции:
CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2.         function replace(code, idnt) {
  3.         video.innerHTML=code;
  4.         if (parent)
  5.         parent.className = "green";
  6.         var actual = document.getElementById(idnt.id);
  7.         parent = actual.parentNode;
  8.         parent.className = "red";
  9.         }
  10. </script>
  11. <script>
  12.         var parent;
  13. </script>

В результате все замечательно работает в IE и Firefox, а вот в Opera цвет рамки не меняется. При этом если мне нужно просто сделать красную рамку, то вот такой код работает:
CODE (javascript):
скопировать код в буфер обмена
  1. <script>
  2.         function replace(code, idnt) {
  3.         video.innerHTML=code;
  4.         var actual = document.getElementById(idnt.id);
  5.         var parent = actual.parentNode;
  6.         parent.className = "red";
  7.         }
  8. </script>


Я не пойму никак...то ли Opera как-то иначе работает с глобальными переменными, то ли я просто чего-то не знаю. Пожалуйста, помогите Улыбка

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB