- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Ребят всем приветик.... тут пояился кася..... долго не замечал у себя на доске...
вообщем ситуация такая очень много дублей объявлений... теперь у меня задача подчистить весь этот хлам....
структура:
таблица board
------
`id`
`name`
`title`
------
дак вот как можно через phpmyadmin title автоматом удалить все дубли? или может у когонить скрипт есть? поделитесь пожалуйста :( более 80000 объявлений нужно вычистить :(
Имхо лучше решить почему они возникают и постараться минимизировать такие ситуации. Самая распространенная ошибка - пользователь не понимает что может разместить одно объявление в нескольких рубриках и поэтому размещает несколько одинаковых объявлений в разных рубриках.
А дубли потом сами отомрут при истечении срока размещения
function delete_id ($title,$id)
{
$db->sql_query("DELETE FROM ".$dname."_board where (id!='$id' && title='$title')");
}
function select_id ($title)
{
$result = $db->sql_query("SELECT * from ".$dname."_board where (title='$title')");
$id = -1;
if ($db->sql_numrows($result)>1)
{
$row_cat = $db->sql_fetchrow($result))
$id = intval ($row_cat['id']);
}
return $id;
}
function delete_dubl ()
{
$result = $db->sql_query("SELECT * from ".$dname."_board where (title='$title')");
while ($row_cat = $db->sql_fetchrow($result))
{
$title = $row_cat['title'];
$id = select_id ($title)
if ($id != -1) delete_id ($title,$id);
}
}
Вот так примерно можно, только с БД, свой класс нужно использовать
function delete_dubl ()
{
$result = $db->sql_query("SELECT * from ".$dname."_board");
while ($row_cat = $db->sql_fetchrow($result))
{
$title = $row_cat['title'];
$id = select_id ($title)
if ($id != -1) delete_id ($title,$id);
}
}
В предыдущем посте ошибка, вот так функция должна быть
define ('CACHEPAGE',1);
define('Hacking', true);
include "config.inc";
if($display_errors) {
ini_set('display_errors', 1);
error_reporting(E_ALL^E_NOTICE);
} else {
ini_set('display_errors', 0);
error_reporting(0);
}
$db=connect_db();
$db_name=db_name();
mysql_select_db($db_name,$db);
$hold=1;
$result=mysql_query($sql,$db);
$myrow=mysql_fetch_array($result);
function delete_m_id ($subject,$m_id)
{
$db->sql_query("DELETE FROM ".$database_name."_board000 where (m_id!='$m_id' && subject='$subject')");
}
function select_m_id ($subject)
{
$result = $db->sql_query("SELECT * from ".$database_name."_board000 where (subject='$subject')");
$m_id = -1;
if ($db->sql_numrows($result)>1)
{
$row_cat = $db->sql_fetchrow($result))
$m_id = intval ($row_cat['m_id']);
}
return $m_id;
}
function delete_dubl ()
{
$result = $db->sql_query("SELECT * from ".$database_name."_board000");
while ($row_cat = $db->sql_fetchrow($result))
{
$subject = $row_cat['subject'];
$m_id = select_m_id ($subject)
if ($m_id != -1) delete_m_id ($subject,$m_id);
}
}
?>
Не пашет... сначала ругаеться на
$row_cat = $db->sql_fetchrow($result))
удаляю скобку....
ругается на
$m_id = intval ($row_cat['m_id']);
ребят помогите доделать пожалуйста
Для выборки "select * from $table group by title";
Для удаления "delete from $table where (id!='$id' && title='$title')");
А все остальное выше написано.
блин я не ас в програминге, мне нужно до рабочего состояния довести данный скрипт
$base_connect = mysql_connect($dbhost, $dbuname, $dbpass) or die('Невозможно подключиться.');
@mysql_select_db($dbname, $base_connect) or die('Невозможно подключиться к базе.');
$query = "select * from $board group by title";
$results = mysql_query($query, $base_connect) or die('Невозможно выполнить запрос.');
while ($result = mysql_fetch_assoc($results))
{
$query = "delete from $board where id!=" . $result['id'] . " and title='" . $result['title'] . "'";
@mysql_query($query, $base_connect) or die('Невозможно выполнить запрос.');
}
mysql_close($base_connect);
Пробуйте только сначала на тестовой базе.
Вот держи библиотеку для работы с БД
ФАЙЛ bd.php
Файл mysql.php
Сам файл удалитель
Сделай файлы db.php, mysql.php и залей к себе на хост в папку sql
определяеш переменные :
$dname = "ИМЯ БАЗЫ";
$dbhost = "localhost";
$dbuname = "ИМЯ_ПОЛЬЗОВАТЕЛЯ БД";
$dbpass = "ПАРОЛЬ К БД";
$dbtype = "MySQL";
после переменных подключи класс командой
include("db.php");
Да и потом класс пригодится.
блин нивкакую не пашет, ругаеться всё там же,
{
global $db,$dname;
$db->sql_query("DELETE FROM ".$dname."_board000 where (m_id!='$m_id' && subject='$subject')");
}
function select_id ($subject)
{
global $db,$dname;
$result = $db->sql_query("SELECT * from ".$dname."_board000 where (subject='$subject')");
$m_id = -1;
if ($db->sql_numrows($result)>1)
{
$row_cat = $db->sql_fetchrow($result))
$m_id = intval ($row_cat['m_id']);
}
return $m_id;
}
function delete_dubl ()
{
global $db,$dname;
$result = $db->sql_query("SELECT * from ".$dname."_board000 where (subject='$subject')");
while ($row_cat = $db->sql_fetchrow($result))
{
subject = $row_cat['subject'];
$m_id = select_id ($subject)
if ($m_id != -1) delete_id ($subject,$m_id);
}
}
Извини вот тут ошибка
Надо вот так: