PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Страниц (30): В начало « ... 21 22 23 24 [25] 26 27 28 29 ... » В конец
Найдено сообщений: 446
GoDr
Отправлено: 26 Января, 2015 - 16:01:48 • Тема: Замена значений в БД • Форум: Напишите за меня, пожалуйста
Ответов: 23 Просмотров: 310
кину на всякий случай дамп БД
CODE (
SQL ):
скопировать код в буфер обмена
-- Дамп структуры для таблица www_nsgel.j25_virtuemart_products_ru_ru
CREATE TABLE IF NOT EXISTS `j25_virtuemart_products_ru_ru` (
`virtuemart_product_id` int( 1) UNSIGNED NOT NULL ,
`product_s_desc` varchar( 2000) NOT NULL DEFAULT '' ,
`product_desc` varchar( 18400) NOT NULL DEFAULT '' ,
`product_name` char( 180) NOT NULL DEFAULT '' ,
`metadesc` varchar( 400) NOT NULL DEFAULT '' ,
`metakey` varchar( 400) NOT NULL DEFAULT '' ,
`customtitle` char( 255) NOT NULL DEFAULT '' ,
`slug` char( 192) NOT NULL DEFAULT '' ,
PRIMARY KEY ( `virtuemart_product_id` ) ,
UNIQUE KEY `slug` ( `slug` )
) ENGINE= MyISAM DEFAULT CHARSET= utf8;
-- Дамп данных таблицы www_nsgel.j25_virtuemart_products_ru_ru: 3 rows
INSERT INTO `j25_virtuemart_products_ru_ru` ( `virtuemart_product_id` , `product_s_desc` , `product_desc` , `product_name` , `metadesc` , `metakey` , `customtitle` , `slug` ) VALUES
( 1 , 'Стол' , '' , 'Стол' , '' , '' , '' , 'Стол' ) ,
( 2 , 'Стул' , '' , 'Стул' , '' , '' , '' , 'Стул' ) ,
( 3 , 'бла бла бла.' , 'бла бла бла' , 'Свечной гель "Красный" 800гр.' , '' , '' , '' , 'Кресло' ) ;
Может кто ещё проверит... а что что-то даже обидно у меня работает, а у товарища нет
(Добавление)
zmeyx пишет: Ребята, плиз помогите с этим делом, пиво с меня!!!! что касается одноразовости этого дела - да, плевать на время исполнения и память, один раз скрипт отработает и больше не нужен будет.
Может кинешь саму таблицу, а тебе её прогоню через скрипт?
GoDr
Отправлено: 26 Января, 2015 - 15:48:44 • Тема: Замена значений в БД • Форум: Напишите за меня, пожалуйста
Ответов: 23 Просмотров: 310
skiphog пишет: Если вы пытаетесь сделать ЧПУ, то ваша функция траслитерации не подходит.
Конечно не подходит... Там много ещё чего нужно убрать и проверить Плюс ко всему, такой принцип создания ссылок породит огромное количество дубликатов
(Добавление)
LIME пишет: ну нубы же...надо понимать или идти мимо
Просто как-то не понятно когда люди делают сайт (сами так говорят). а как применить готовый запрос не знают.. Ну да ладно... Как ты сказал, ленюсь иногда
Кстати, задача стоит сделать разовую функцию.. так что мне кажется пофиг какой код использовать. Даже можно не заботиться о нагрузке на сервер и время )))
GoDr
Отправлено: 26 Января, 2015 - 15:44:13 • Тема: Замена значений в БД • Форум: Напишите за меня, пожалуйста
Ответов: 23 Просмотров: 310
Что значит подробно? До какого уровня? С установки локального сервера?
Ладно, попробую подробно.. Давно не использовал чистый функционал, попробую вспомнить... В обще-где-то так.. Вроде работает
PHP:
скопировать код в буфер обмена
// Подключаемся к БД
$mysqli = new mysqli( "host" , "user" , "password" , "database" ) ;
$sql = "SELECT `virtuemart_product_id`, `slug` FROM `j25_virtuemart_products_ru_ru`" ;
if ( $result = $mysqli -> query ( $sql ) ) {
// выборка данных и помещение их в массив
while ( $row = $result -> fetch_assoc ( ) ) {
$slug_new = russian_transliterate( $row [ 'slug' ] ) ;
$sql = "UPDATE `j25_virtuemart_products_ru_ru` SET `slug`= '" . $slug_new . "' WHERE `virtuemart_product_id`= " . $row [ 'virtuemart_product_id' ] ;
$mysqli -> query ( $sql ) ;
}
// очищаем результирующий набор
$result -> close ( ) ;
}
// закрываем подключение
$mysqli -> close ( ) ;
GoDr
Отправлено: 26 Января, 2015 - 14:53:21 • Тема: Замена значений в БД • Форум: Напишите за меня, пожалуйста
Ответов: 23 Просмотров: 310
Так вроде уже всё ответил в прошлый раз или совсем не понятно что и как?
PHP:
скопировать код в буфер обмена
// Подключаю обёртку MySQLi
$DB = LCore:: getDB ( ) ;
// Получаем данные из таблицы
$rows = $DB -> select ( "SELECT `virtuemart_product_id`, `slug` FROM `j25_virtuemart_products_ru_ru`" ) ;
/*
Array
(
[0] => Array
(
[virtuemart_product_id] => 1
[slug] => Стол
)
[1] => Array
(
[virtuemart_product_id] => 2
[slug] => Стул
)
[2] => Array
(
[virtuemart_product_id] => 3
[slug] => свечной-гель-красный-800гр
)
)
*/
// перебираем массив
foreach ( $rows as $value ) {
// Делаем транслитерацию
$slug_new = russian_transliterate( $value [ 'slug' ] ) ;
// Сохраняем данные в базу
$sql = "UPDATE `j25_virtuemart_products_ru_ru` SET `slug`=? WHERE `virtuemart_product_id`= ?;" ;
$DB -> update ( $sql , $slug_new , $value [ 'virtuemart_product_id' ] ) ;
}
/*
Array
(
[0] => Array
(
[virtuemart_product_id] => 1
[slug] => Stol
)
[1] => Array
(
[virtuemart_product_id] => 2
[slug] => Stul
)
[2] => Array
(
[virtuemart_product_id] => 3
[slug] => svechnoy-gel'-krasnyy-800gr
)
)
*/
PS
использую свою обёртку для работы с БД, но суть понять можно и переделать под себя
GoDr
Отправлено: 26 Января, 2015 - 08:04:03 • Тема: Скрипт чартов • Форум: Вопросы новичков
Ответов: 5 Просмотров: 246
Altx , а что именно сделать? Ну открыл я ссылку, и куда смотреть? Там пара десятков скриптов.
GoDr
Отправлено: 26 Января, 2015 - 07:57:32 • Тема: mail() • Форум: Вопросы новичков
Ответов: 2 Просмотров: 144
добавь разделитель строк "\r\n" или просто "\n"
GoDr
Отправлено: 23 Января, 2015 - 18:15:14 • Тема: Не работает update sql • Форум: Вопросы новичков
Ответов: 6 Просмотров: 775
barsbass , что-то я не пойму... А где кавычки в запросе? Или что-то я не понимаю
И вообще, не пора ли использовать подготовленные выражения?
И очень правильно говорит LIME , выведи строку запроса и запусти её в SQL-клиенте.. Я не очень люблю phpmyadmin, сам пользуюсь HeidiSQL
GoDr
Отправлено: 23 Января, 2015 - 13:46:06 • Тема: Как сохранить в файл из textarea • Форум: Вопросы новичков
Ответов: 13 Просмотров: 646
Если у тебя с этим проблема, то проблема в javascript`e. А это уже клиентская часть.. Странно, если не работает в одном браузере, то должно работать в другом..
Твоя сборка у меня отлично работает. проверял:
Лиса 35.0
Осёл 11.0
Максон 4.4.3
Хром 38.0
GoDr
Отправлено: 23 Января, 2015 - 12:35:36 • Тема: Как сохранить в файл из textarea • Форум: Вопросы новичков
Ответов: 13 Просмотров: 646
Я долго бился со скриптом копирования в буфер.. То один браузер не хочет, то другой.. Этот скрипт вроде должен в любом новом браузере копировать.. Это я к тому что пустой файл...
Попробуй закомментировать это
и прописать это
Что покажет?
И ещё, кинь мне архив своей сборки скрипта. Я сейчас тупо создал два файла index.php и save.php и скопировал в них код с форума.. всё отлично заработало
(Добавление)
hijackerkurt пишет: Вот этот бред в логах opera:
это про CSS
Неплохо было бы воспользоваться Firefox + Firebug. Можно было бы более грамотно отследить все запросы
GoDr
Отправлено: 23 Января, 2015 - 08:31:12 • Тема: Укоротитель ссылок • Форум: Напишите за меня, пожалуйста
Ответов: 17 Просмотров: 176
да уж... срок огромный
В общем чуть-чуть сделал. Времени не так уж много (семья, дети, работа )
что сделал:
- ссылки укорачиваются, но только по одному правилу
- ссылки удаляются
- переадресация
- подсчёт переходов
Часть кода (остальное в архиве):
index.php
PHP:
скопировать код в буфер обмена
<?PHP
// Подключаем класс для работы с БД и заодно языковые настройки
require_once ( 'gddbdefine.php' ) ;
require_once ( 'gddatabase.php' ) ;
// Подключаем библиотеку укорачивания ссылок
require_once ( 'short.php' ) ;
// Подключаем класс шаблонов
require_once ( 'template.php' ) ;
// На всякий случай будем обрабатывать исключения
try {
// Получаем задачу
$task = ( isset ( $_REQUEST [ 'task' ] ) ) ?
$_REQUEST [ 'task' ] : '' ;
switch ( $task ) {
// переход по ссылки
case 'redirect' :
$id = ( isset ( $_REQUEST [ 'id' ] ) ) ?
$_REQUEST [ 'id' ] : 0 ; LibShortUrl:: Init ( ) -> redirectUrl ( $id ) ;
echo "<script>window.location='" . _GDDB_PATH_SITE. "'</script>" ;
break ;
// удаление ссылок
case 'delete' :
$id = ( isset ( $_REQUEST [ 'id' ] ) ) ?
$_REQUEST [ 'id' ] : 0 ; fDefault( Template:: viewMessage ( 'Ссылка ' . LibShortUrl:: Init ( ) -> deleteUrl ( $id ) . ' удалена' ) ) ;
break ;
// создание новой ссылки
case 'create' :
$url = ( isset ( $_REQUEST [ 'url' ] ) ) ?
$_REQUEST [ 'url' ] : '' ; fDefault( Template:: viewMessage ( 'Создана короткая ссылка: ' . LibShortUrl:: Init ( ) -> createShortUrl ( $url ) ) ) ;
break ;
// вывод по умолчанию начальной страницы
default :
fDefault( ) ;
}
} catch ( Exception $e ) {
echo '<div style="color:#f00">' ;
echo '<i>Ошибка: </i>' . $e -> getMessage ( ) . '<br>' ;
echo '<i>Файл: </i>' . $e -> getFile ( ) . '<br>' ;
echo '<i>Строка: </i>' . $e -> getLine ( ) ;
echo '<pre>' . $e -> getTraceAsString ( ) . '</pre>' ;
echo '</div>' ;
}
function fDefault( )
{
$link = '' ;
$rows = LibShortUrl:: Init ( ) -> getAllUrl ( ) ;
foreach ( $rows as $value ) {
$links [ ] = Template:: getInputLink ( $value [ 'id' ] , $value [ 'short' ] , $value [ 'original' ] ) ;
}
$link .= '<table>' ;
$link .= '<tr><th>Короткий URL</th><th>Длинный URL</th><th>Действие</th></tr>' ;
$link .= '<tr>' . implode ( '' , $links ) . '</tr>' ; $link .= '</table>' ;
}
Template:: pageDefault ( $link ) ;
}
template.php (Класс шаблона)
PHP:
скопировать код в буфер обмена
<?PHP
/**
* @package Template
* @version 1.0
* @author Gold Dragon <illusive@bk.ru>
* @link http://gd.lotos-cms.ru
* @copyright 2000-2015 Gold Dragon
* @license MIT License: http://opensource.org/licenses/MIT
* @date 22.01.2015
*
* @description Класс шаблона
*/
class Template
{
/**
* Основной шаблон страницы
*
* @param string $content : контент
* @param string $message : информационное сообщение
*/
private static function pageBody( $content , $message = '' )
{
?>
<!doctype html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Укоротитель ссылок</title>
<style>
td, th {
border: 1px #999 solid;
padding: 5px;
}
</style>
</head>
<body>
<?PHP echo $message ; ?>
<?PHP echo $content ; ?>
</body>
</html>
<?PHP
}
/**
* Главная страница
*
* @param string $links : ссылки которые уже в базе
*/
public static function pageDefault( $links = '' )
{
?>
<h2>Укоротить URL</h2>
<form action="" method="post">
<label>Ссылка: <input type="text" size="70" name="url" placeholder="Введите URL для сокращения"/></label>
<input name="task" type="hidden" value="create"/>
<input type="submit" name="save" value="Укоротить"/>
</form>
<h3>Существующие ссылки:</h3>
<?PHP echo $links ; ?>
<?PHP
self :: pageBody ( $content ) ;
}
public static function getInputLink( $id , $short , $original )
{
$result = '<tr>' ;
$result .= '<td>' . $short . '</td><td>' . $original . '</td>' ;
$result .= '<td><a href="index.php?task=delete&id=' . $id . '">Удалить</a><br><a href="index.php?task=redirect&id=' . $id . '">Перейти</a></td>' ;
$result .= '<tr>' ;
return $result ;
}
public static function viewMessage( $mes )
{
?>
<div style="background-color: antiquewhite; padding: 10px"><?PHP echo $mes ; ?> </div>
<?PHP
}
}
short.php (сам класс укорачивания)
PHP:
скопировать код в буфер обмена
<?PHP
/**
* @package Library
* @subpackage Url
* @version 1.0
* @author Gold Dragon <illusive@bk.ru>
* @link http://gd.lotos-cms.ru
* @copyright 2000-2015 Gold Dragon
* @license MIT License: http://opensource.org/licenses/MIT
* @date 22.01.2015
*
* @description Класс для укорачивания ссылок
*/
class LibShortUrl
{
/** @var null|object - интерфейс */
private static $_resource = null ;
/**
* @static Подключение класса
*
* @return object
*/
public static function Init( )
{
$class_name = __CLASS__ ;
self :: $_resource = new $class_name ;
}
return self :: $_resource ;
}
/**
* Переход по ссылке и запись в базу данных
*
* @param $id
*/
public function redirectUrl( $id )
{
$url = GDDatabase:: Init ( ) -> selectCell ( "SELECT `original` FROM `#__url` WHERE `id`= ?" , $id ) ;
if ( GDDatabase
:: Init ( ) -> selectCell ( "SELECT `id_url` FROM `#__url_stat` WHERE `id_url` = ? AND `date` = ?" , $id , date ( "Y-m-d" ) ) ) { GDDatabase:: Init ( ) -> update ( "UPDATE `#__url_stat` SET `click` = `click` + 1 WHERE `id_url` = ?" , $id ) ;
} else {
GDDatabase
:: Init ( ) -> insert ( "INSERT INTO `#__url_stat` (`id_url`, `click`, `date`) VALUES (?,?,?);" , $id , 1
, date ( "Y-m-d" ) ) ; }
echo "<script>window.open('" . $url . "','_blank');</script>" ;
}
/**
* Удаление ссылки
*
* @param int $id : идентификатор ссылки
*
* @return string : оригинальная ссылка
*/
public function deleteUrl( $id )
{
$url = GDDatabase:: Init ( ) -> selectCell ( "SELECT `original` FROM `#__url` WHERE `id`= ?" , $id ) ;
GDDatabase:: Init ( ) -> delete ( "DELETE FROM `#__url` WHERE `id`= ?" , $id ) ;
return $url ;
}
/**
* Создание короткой ссылки
*
* @param string $url : оригинальная ссылка
* @param int $type : тип ссылки
* 1 - \d+\.html
* 2 - 0*\d+\.html
* 3 - [a-z]*\d+\.html
* 4 - [a-z]+\.html
*
* @return null|string : короткая ссылка
*/
public function createShortUrl( $url = '' , $type = 1)
{
$check = $this -> checkUrl ( $url ) ;
return $this -> checkUrl ( $url ) ;
} else {
$scheme = ( isset ( $rows [ 'scheme' ] ) ) ?
$rows [ 'scheme' ] : '' ; $host = ( isset ( $rows [ 'host' ] ) ) ?
$rows [ 'host' ] : '' ; $last_id = GDDatabase:: Init ( ) -> selectCell ( 'SELECT `id` FROM `#__url` ORDER BY `id` DESC' ) + 1 ;
switch ( $type ) {
case 1:
default :
$sql = "INSERT INTO `#__url`(`id`, `short`,`original`) VALUES(?,?,?);" ;
GDDatabase:: Init ( ) -> insert ( $sql , $last_id , $scheme . '://' . $host . '/' . $last_id , $url ) ;
}
return $scheme . '://' . $host . '/' . $last_id ;
}
} else {
return '' ;
}
}
/**
* Возвращает готовую короткую ссылку
*
* @param string $url : оригинальная ссылка
*
* @return null|string : короткая ссылка
*/
public function getShortUrl( $url = '' )
{
return '' ;
}
/**
* Возвращает оригинальную ссылку
*
* @param string $url : короткая ссылка
*
* @return null|string : оригинальная ссылка
*/
public function getOriginalUrl( $url = '' )
{
return '' ;
}
/**
* Возвращает количество переходов
*
* @param string $url : короткая или оригинальная ссылка
*
* @return int
*/
public function getClickUrl( $url = '' )
{
return 1 ;
}
/**
* @param string $period : период отчёта
* D - за день
* W - за неделю
* M - за месяц
*
*/
public function getRedirectUrl( $period = '' , $year = 0 )
{
}
/**
* Возвращает все ссылки из таблицы
*
* @return array : ссылки из таблицы
* [][id]
* [][short]
* [][original]
*/
public function getAllUrl( )
{
$rows = GDDatabase:: Init ( ) -> select ( "SELECT * FROM `#__url`" ) ;
return $rows ;
}
/**
* Проверяет существует ли ссылка в баже
*
* @param $url : короткая или оригинальная ссылка
*
* @return mixed : короткая ссылка или null
*/
private function checkUrl( $url )
{
$result = GDDatabase:: Init ( ) -> selectCell ( "SELECT `short` FROM `#__url` WHERE `short` = ? OR `original` = ?" , $url , $url ) ;
return $result ;
}
}
база данных
CODE (
SQL ):
скопировать код в буфер обмена
-- Дамп структуры для таблица qqq.gd_url
CREATE TABLE IF NOT EXISTS `gd_url` (
`id` int( 11) NOT NULL ,
`short` varchar( 250) DEFAULT NULL ,
`original` varchar( 250) DEFAULT NULL ,
PRIMARY KEY ( `id` )
) ENGINE= MyISAM DEFAULT CHARSET= utf8;
-- Дамп данных таблицы qqq.gd_url: 2 rows
INSERT INTO `gd_url` ( `id` , `short` , `original` ) VALUES
( 5 , 'https://www.google.ru/5' , 'https://www.google.ru/search?q=%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0+curl+php&ie=utf-8&oe=utf-8&gws_rd=cr&ei=wq2_VNIdyfjJA_jBgKAM' ) ,
( 3 , 'http://forum.php.su/3' , 'http://forum.php.su/topic.php?forum=71&topic=16057&postid=1421991474#1421991474' ) ,
( 4 , 'http://ruseller.com/4' , 'http://ruseller.com/lessons.php?rub=37&id=1187' ) ;
-- Дамп структуры для таблица qqq.gd_url_stat
CREATE TABLE IF NOT EXISTS `gd_url_stat` (
`id_url` int( 11) DEFAULT NULL ,
`click` int( 11) DEFAULT NULL ,
`date` date DEFAULT NULL ,
UNIQUE KEY `id_url` ( `id_url` , `date` )
) ENGINE= MyISAM DEFAULT CHARSET= utf8;
-- Дамп данных таблицы qqq.gd_url_stat: 0 rows
INSERT INTO `gd_url_stat` ( `id_url` , `click` , `date` ) VALUES
( 4 , 2 , '2015-01-23' ) ;
(Добавление)
архив полностью тут http://lotos-cms[dot]ru/files/url[dot]qqq[dot]zip
(Добавление)
состав архива:
cache \ - папка для кеширвоания запросов БД
.htaccess - небольшая настройка сервера
gddatabase.php - класс для работы с БД
gddbconfig.ini - настройки БД
gddbdefine.php - некоторые константы
index.php - основной управляющий файл
short.php - класс укорачивания
template.php - класс шаблонов
И соответственно, код не оптимизирован конечно же и безопасность скриптов минимальная
Страниц (30): В начало « ... 21 22 23 24 [25] 26 27 28 29 ... » В конец
Powered by ExBB FM 1.0 RC1. InvisionExBB