PHP.SU

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

Страниц (21): [1] 2 3 4 5 6 7 8 9 ... » В конец

> Найдено сообщений: 301
new01 Отправлено: 28 Января, 2020 - 16:01:26 • Тема: Работа с ссылками MYSQL PHP • Форум: Вопросы новичков

Ответов: 4
Просмотров: 409
Здравствуйте!

К примеру, у меня есть таблица mysql, где одно поле - это id записи в другой таблице, которое является ссылкой на нее (связи). Код получается следующим:

PHP:
скопировать код в буфер обмена
  1.  
  2. while($row = mysql_fetch_array($result)){
  3. $order = mysql_fetch_array(mysql_query("SELECT *  FROM `orders` WHERE `id` = '$row[order_id]'"));
  4. }
  5.  


А можно ли как-то $order получать исходя из ссылки? Какой тогда от неё смысл?
new01 Отправлено: 21 Ноября, 2019 - 18:43:22 • Тема: ЧПУ адрес, одна точка входа и GET переменные • Форум: Вопросы новичков

Ответов: 2
Просмотров: 369
Здравствуйте, использую ЧПУ адрес и одну точку входа через правило в .htaccess. Правило следующее:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. Options All -ExecCGI -Indexes -Includes +FollowSymLinks
  3. DirectoryIndex index.php
  4.  
  5. RemoveHandler .xml
  6. AddType application/x-httpd-php .xml
  7.  
  8. <IfModule mod_rewrite.c>
  9.         RewriteEngine on
  10.         RewriteBase /
  11.        
  12.         RewriteCond %{REQUEST_FILENAME} !-d
  13.         RewriteCond %{REQUEST_FILENAME} !-f
  14.         RewriteRule ^(.*) index.php?q=$1 [L]
  15. </IfModule>
  16.  

но GET переменные пропадают, понимаю, что их можно вытащить через php делением строки на подстроки и т.п., но можно ли как-то изменить правило в .htaccess, чтобы сразу туда шли переменные GET наряду с q ?
new01 Отправлено: 15 Ноября, 2019 - 14:16:39 • Тема: Одновременное изменение одной записи в Mysql БД с разных соединений • Форум: Вопросы новичков

Ответов: 3
Просмотров: 491
Мелкий пишет:
именно `field` = `field` + '$value - не может. Транзакции имеют явный конфликт ресурсов и будут сериализованы самой базой данных корректно.
innodb - на блокировке строки
myisam - блокировкой таблицы

А вот если делаете select field, дальше что-то на приложении считается, а потом update set field = newvalue - то тут проблема конкурентного доступа будет.


Да, я вот так и думал, что если `field` = `field` + '$value, то в принципе все ок должно быть. То есть Mysql сам смотрит, что сейчас с этим полем происходит операция, значит надо дождаться окончания операции и обновить поле на основе новых данных? И сам составляет очередь, да?
new01 Отправлено: 15 Ноября, 2019 - 02:12:07 • Тема: Одновременное изменение одной записи в Mysql БД с разных соединений • Форум: Вопросы новичков

Ответов: 3
Просмотров: 491
Здравствуйте!

У меня происходит большое количество обращений к одному полю в одной таблице и в одной записи. Причем обращения не просто посмотреть значение, а изменить его. Источники обращений: разные php скрипты (не один), то есть могут быть параллельные обращения.

Изменение значения происходит следующим стандартным образом:
CODE (SQL):
скопировать код в буфер обмена
  1. UPDATE `table` SET `field` = `field` + '$value' WHERE `id` = '$id'


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

Собственно вопрос, может ли так случиться? Либо Mysql предусмотрели это уже? Если всё же может, то что делать? Блокировать таблицу, запись, поле или...?

Заранее всем благодарен за любые Ваши ответы.

P.S. модераторы, поменяйте название темы на "Одновременное изменение одной записи в Mysql БД с разных соединений", пожалуйста! Спасибо.
new01 Отправлено: 30 Октября, 2019 - 12:13:08 • Тема: Вопрос по Ajax • Форум: Вопросы новичков

Ответов: 14
Просмотров: 996
Я бы на твоем месте написал серверную часть на node.js и использовал сокеты. Загугли почитай, ничего сложного нет. Там буквально у тебя пару сотен строк кода будет, если не меньше. При изменении данных можно просто отправлять всем клиентам с сервера новый фрагмент и всю инфу о нем. Это гораздо легче и эффективнее. Делать setInterval на стороне клиента уже не круто и глупо как по мне. Тем более раз в секунду))
new01 Отправлено: 30 Октября, 2019 - 11:27:30 • Тема: Дважды записываются COOKIE (дублируются) • Форум: Вопросы новичков

Ответов: 4
Просмотров: 544
Вот скрин.
(Добавление)
LIME пишет:
new01 пишет:
Путь - разный
вот это и хотелось видеть на скрине
тут скорее непонятно почему вопрос возник
сам же на него и ответил
познай фронт-контроллер
new01 пишет:
Не пойму, почему теги не работают в сообщениях
с таким скрином неважно
лучше бы не показывал

Понял, спасибо! Уже изучаю!
(Добавление)
Вообще у меня стоит общая точка входа: то есть все урл запросы идут через index.php, а там сначала подключается две общие библиотеки (для работы на каждой странице), где собственно идет непосредственно запись кук, далее подключается необходимый контроллер и вью в зависимости от страницы. Добавил аргумент путь "/" при записе кук и всё.
new01 Отправлено: 30 Октября, 2019 - 11:19:03 • Тема: Дважды записываются COOKIE (дублируются) • Форум: Вопросы новичков

Ответов: 4
Просмотров: 544
[quote=LIME][/quote]
[img]https://sun9-61.userapi.com/c858132/v858132695/c009f/0ZYTRmJ5tCY.jpg[/img]
Название - одно
Контент - один
Домен - один
Путь - разный (типа /user, /settings и т.п.)
Создано и срок действия - разный
(Добавление)
Не пойму, почему теги не работают в сообщениях Недовольство, огорчение
new01 Отправлено: 29 Октября, 2019 - 16:48:11 • Тема: Дважды записываются COOKIE (дублируются) • Форум: Вопросы новичков

Ответов: 4
Просмотров: 544
Здравствуйте!

Сделал вечную авторизацию. Идея банальна и проста, хранится ID и SIGN. Записываю куки при каждом заходе на сайт следующим образом
PHP:
скопировать код в буфер обмена
  1.  
  2. setcookie("user_id", $user_id, time() + 3600 * 24 *30);
  3. setcookie("sign", $sign, time() + 3600 * 24 * 30);
  4.  

Но возникает следующая проблема, в хроме смотрю и там по 5-6 дублей этих переменных. То есть названия и значения такие же, разные только даты создания и окончания переменных. Вроде как же должно просто перезаписываться в эту же переменную, а вместо этого создается новая с таким же названием. Что-то изменилось? Помогите, пожалуйста.

Заранее признателен за любой Ваш ответ.
new01 Отправлено: 23 Июня, 2016 - 17:14:49 • Тема: Php и MongoDB округление числа • Форум: Вопросы новичков

Ответов: 3
Просмотров: 347
Sail пишет:
new01, попробуйте выбрать из предлагаемых математических расширений.
(Добавление)
Хотя...
PHP:
скопировать код в буфер обмена
  1. $num =  0.6017737223301083;
  2. $str = number_format($num, 16, '.', '');
  3. var_dump($num, $str);
выдает:
Цитата:
float 0.60177372233011
string '0.6017737223301083' (length=18)

В бд он записан как число. И php его получаем числом и сразу округляем. Даже функция number_format не помогает, она добавляет 2 нуля в конце Недовольство, огорчение(
new01 Отправлено: 23 Июня, 2016 - 16:18:22 • Тема: Php и MongoDB округление числа • Форум: Вопросы новичков

Ответов: 3
Просмотров: 347
Здравствуйте!

В MongoDB хранится документ с такой переменной:
CODE (htmlphp):
скопировать код в буфер обмена
  1. "num": 0.6017737223301083

Посредством php нахожу этот документ
PHP:
скопировать код в буфер обмена
  1.  
  2. $collection = $connection->selectDB('admin')->selectCollection('games');
  3.                 $rangeQuery = array("idgame"=>$idGame);
  4. $game = $collection->findOne($rangeQuery);
  5.  

но при выводе переменной $game['num'] я получаю значение 0.60177372233011 ВМЕСТО 0.6017737223301083, то есть либо PHP, либо MongoDB округляет это число.

Вопрос:
Как получить исходное число без округления?

Буду признателен за любую помощь.
new01 Отправлено: 04 Декабря, 2015 - 11:59:56 • Тема: Urlencode • Форум: Вопросы новичков

Ответов: 3
Просмотров: 198
Marattt пишет:
if(hasUrlencode()){
   header('location: /search/'.urldecode($request));
}

Вопрос в функции hasUrlencode. Как её реализовать?
(Добавление)
Faraon-san пишет:
new01 так это же поиск зачем такие сложности?

Конкретно в чем сложности?
new01 Отправлено: 04 Декабря, 2015 - 04:39:29 • Тема: Urlencode • Форум: Вопросы новичков

Ответов: 3
Просмотров: 198
Здравствуйте!

Такая проблема. Скрипт обрабатывает два запроса:
1. domain.com/search/дом
2. domain.com/search/%E4%EE%EC
Причем, где %E4%EE%EC=urlencode("дом").

Из-за этого в индексе получается две страницы с одинаковым контентом, но разным для ПС адресом. Возможно ли это как-то избежать? К примеру, перенаправление с одной версии на более приоритетную.

Заранее спасибо.
new01 Отправлено: 26 Ноября, 2015 - 15:35:05 • Тема: RewriteRule лёгкий шаблон • Форум: Вопросы новичков

Ответов: 0
Просмотров: 63
Здравствуйте, ребят!

Такая проблема.
В файле .htaccess стоит такой шаблон:
RewriteRule ^search/(.*)$ /?search=$1 [QSA,L,NE,NC]

Когда на вход идёт domain.com/search/Dimitri Vegas & Like Mike Feat. Ne-Yo - Higher Place

Берём из $_GET['search'] значение, и он выводит "Dimitri Vegas", ВМЕСТО "Dimitri Vegas & Like Mike Feat. Ne-Yo - Higher Place". Как исправить, чтобы получал полное значение?

Заранее всем спасибо!
(Добавление)
Прошу прощения, тему можно закрыть.

Решение:
Добавил после RewriteEngine On

CODE (htmlphp):
скопировать код в буфер обмена
  1. RewriteRule ^(.*)\&(.*)$ $1\%2526$2 [L]
new01 Отправлено: 21 Июля, 2015 - 00:55:17 • Тема: Xml и php • Форум: Вопросы новичков

Ответов: 0
Просмотров: 110
Здравствуйте!

Делаю карту сайта, посредством php, на xml. Код такой:
PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = new XMLWriter(); //создаем новый экземпляр класса XMLWriter
  3. $xml->openMemory(); //использование памяти для вывода строки
  4. $xml->startDocument('1.0','UTF-8'); //установка версии XML в первом теге документа
  5. $xml->startElement('urlset'); //создание корневого узла
  6.         $xml->startElement("url");
  7.         $xml->writeElement("loc",'');
  8.         $xml->writeElement("priority",'1');
  9.         $xml->writeElement("lastmod",date("Y-m-d\TH:i:s+02:00"));
  10.         $xml->writeElement("changefreq",'always');
  11. $xml->endElement();
  12. $xml->endElement();
  13. echo $xml->outputMemory(); //завершение записи в XML
  14.  

Вопросы
1. К тегу urlset необходимо добавить атрибуты, чтобы получилось вот так
PHP:
скопировать код в буфер обмена
  1.  
  2. <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
  3.         xmlns:xhtml="http://www.w3.org/1999/xhtml">
  4.  

Как это можно сделать?
2. Также необходимо добавить в каждый тег url следующий тег со следующими атрибутами
PHP:
скопировать код в буфер обмена
  1.  
  2. <xhtml:link
  3.     rel="alternate"
  4.     media="only screen and (max-width: 640px)"
  5.     href="http://m.example.com/page-1" />
  6.  

Как это сделать? Недовольство, огорчение
new01 Отправлено: 18 Июля, 2015 - 22:01:15 • Тема: Вывод даты ISO 8601 пользователю • Форум: Вопросы новичков

Ответов: 3
Просмотров: 348
Мелкий, DelphinPRO спасибо!
Цитата:
не верю (с)

раз в мускуле: https://dev[dot]mysql[dot]com/doc/refman[dot][dot][dot]tion_date-format

два в пыхе: http://php.net/manual/ru/book.datetime.php

Буду внимательней Недовольство, огорчение

Решение (Объектно-ориентированный стиль):
PHP:
скопировать код в буфер обмена
  1.  
  2. $objdatetime = new DateTime("2015-07-17T16:04:51.000Z");
  3. echo $objdatetime ->format('Y-m-d H:i:s');
  4.  

Страниц (21): [1] 2 3 4 5 6 7 8 9 ... » В конец
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB