phpRS help fórum : phpRS Fórum
Hlavní diskuzní phpRS fórum. Najdete zde odpovědi na otázky týkající se provozu a instalace phpRS systému.
phpRS - redakční a informační systém
Jít na stránku:  12Další
Aktuální stránka:1 z 2
Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: Poky (IP adresa zaznamenána)
Datum: 2006-08-22, 21:40

Používám phpRS 2.3 (nečertěte se na mě nikdo, mám to modifikovaný a nemám čas to implementovat do nové verze 2.8).

Potřebuju po robotech smazat cca 10000 komentářů. Když je smažu jen v tabulce "rs_komentare", tak pak u článku zůstane starý počet komentářů, protože se nezruší jakási vazba mezi komentářem a článem.

Poradíte, jak kompletně smazat komentáře v databázi? Díky.

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-08-22, 23:01

Určite to pôjde SQL update dotazom. Spravil by som group na tabuľku rs_komentare podľa poľa clanek:
SELECT COUNT( idk ) , clanek
FROM `rs_komentare`
GROUP BY clanek;

a výsledok v cykle použil na UPDATE poľa kom tabuľky rs_clanky:
UPDATE `rs_clanky` 
SET kom=3 
WHERE link=2006070001;

dalo by sa to možno aj jednoduchšie

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: Poky (IP adresa zaznamenána)
Datum: 2006-08-23, 00:22

No, já jsem zjistil, že asi stačí jenom smazat komentáře z "rs_komentare" a pak upravit hodnotu "kom" v "rs_clanky". Ta udává počet komentářů, ale slouží asi jenom informativně, tj. nemá žádnou vazbu na komentáře. Klidně tam můžu zadar milión a nemít komentář ani jeden.

Můžete mi někdo potvrdit, jestli mám pravdu?

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: Michalek (IP adresa zaznamenána)
Datum: 2006-08-23, 00:32

Máš pravdu :-)

--
[ SAFUS.EU | OFFLINE | FOREVER ]

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-08-23, 01:02

Presne tak, ide len o zobrazenie počtu komentárov pri výpise článku = "kozmetická" vada, síce ťažšieho kalibru, no bez fatálneho dopadu na funkčnosť. Počet komentárov je IMHO uložený v tabuľke rs_clanky z dôvodu optimalizácie zaťažania databázy.

Keď sme pri tej optimalizácii napadlo ma, či by sa v SQL nedal ten update počtu spraviť jedným dotazom. Kto zo znalcov SQL na to príde? IMHO by to v MySQL mohlo ísť. Každopádne z výstupu toho group-selectu čo som postol vyššie sa dá aj bez znalostí php spraviť (napr. v tabulkovom kalkulatore) sada SQL scriptov. Tie stačí hodiť databáze a je hotovo. phpMyAdmin, jeden dotaz, copy & paste. Zvládne každý. Pri oprave je lepšie pre istotu odstaviť web (napr. dočasne premenovať comment.php).

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: yard (IP adresa zaznamenána)
Datum: 2006-09-01, 22:12

Zdravim, moj stary neosetreny web napadlo vyse 100 tisic! spamov a tak som to riesil zmazanim vsetkych prispevkov, ktore mali v sebe a href, alebo http:// pretoze som nemal vela komentarov kde by sa vyskytovali hyperlinky, nieco som obetoval :(

DELETE FROM `rs_komentare` WHERE `obsah` LIKE '%a href=%'

alebo

DELETE FROM `rs_komentare` WHERE `titulek` LIKE '%[url]http://[/url]%'

ale dalo by sa aj jemnejsie, modifikaciou zapisu v LIKE (napriklad casino, rulette a pod...)

ale aj tak zostal problem s poctom komentarov, manualne to upravovat v stovkach clankov je nemozne



Celkem upraveno 1×. Poslední úprava yard v 01.09.2006 22:12.

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-09-01, 22:21

bez záruky, odzálohuj si pred tým databázu
<?php
################################################################################
# 
#	Uprava poctu komentarov v tabulke clankov 
# 	po ich hromadnom vymazani z tab. komentare
# 
################################################################################

	define('IN_CODE',true); 
	include_once('config.php');

################################################################################

echo 		'
		<html>
		';
				 
$sql = '	SELECT COUNT( idk ) as spravnypocetkom, clanek
		FROM `'.$GLOBALS['rspredpona'].'komentare`
		GROUP BY clanek';

$result = 	phprs_sql_query($sql,$GLOBALS["dbspojeni"]);


while ($zaznam = phprs_sql_fetch_assoc($result)) 
{
	
	
	echo 	'
		<br>
		pre clanok: '.$zaznam['clanek'].' 
		nastavujem pocet komentarov:'.$zaznam['spravnypocetkom'].'
		';
	
	@phprs_sql_query
	('

		UPDATE '.$GLOBALS["rspredpona"].'clanky 
		SET kom='.$zaznam['spravnypocetkom'].' where link="'.$zaznam['clanek'].'"'
		
		,$GLOBALS["dbspojeni"]
		
	);
}

echo 		'
		</html>
		';
?>

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: cZip (IP adresa zaznamenána)
Datum: 2006-09-02, 19:00

Jeste tam chybi natavit pocet na nulu k kterych neni zadny komentar...

Pred: while ($zaznam = phprs_sql_fetch_assoc($result)) ...

dejte jeste tohle:

$sql = 'UPDATE '.$GLOBALS["rspredpona"].'clanky SET kom=0;';
phprs_sql_query($sql,$GLOBALS["dbspojeni"]);

Cauec cZip

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-09-02, 19:55

cZip, ved COUNT dokaze vratiti nulu, ten prikaz tam je podla mna zbytocny.

EDIT: Beriem spat, ked nie je zaznamenany ziaden komentar tak asi nema ake cislo vratit :) Myslel som moc rychlo. Takze ta uprava od cZipa je potrebna.

____________________
smiko.host.sk/phprs/



Celkem upraveno 1×. Poslední úprava smiko v 03.09.2006 13:19.

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: yard (IP adresa zaznamenána)
Datum: 2006-09-03, 11:45

Nefunguje to zatial,

nazval som to comments_recount.php a nahral do rootu. Po spusteni to pise:

Fatal error: Call to undefined function: phprs_sql_query() in /httpd/html/ovask/www/comments_recount.php on line 22

Line 22 je:
$result = phprs_sql_query($sql,$GLOBALS["dbspojeni"]);


cele je to umiestnene tu:
[http://www.ova.sk/comments_recount.php]

dik za pomoc a ochotu!


Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-09-03, 13:19

asi nemas phpRS 2.8.0 ze ?

prepis to na mysql_query

____________________
smiko.host.sk/phprs/

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: yard (IP adresa zaznamenána)
Datum: 2006-09-03, 13:32

ee, je to starsia verzia phprs 265SK

zmenil som script takto:
[http://www.ova.sk/comments_recount.php]

<?php
################################################################################
#
# Uprava poctu komentarov v tabulke clankov
# po ich hromadnom vymazani z tab. komentare
#
################################################################################

define('IN_CODE',true);
include_once('config.php');

################################################################################

echo '
<html>
';

$sql = ' SELECT COUNT( idk ) as spravnypocetkom, clanek
FROM `'.$GLOBALS['rspredpona'].'komentare`
GROUP BY clanek';

$result = mysql_query($sql,$GLOBALS["dbspojeni"]);


while ($zaznam = mysql_fetch_assoc($result))
{


echo '
<br>
pre clanok: '.$zaznam['clanek'].'
nastavujem pocet komentarov:'.$zaznam['spravnypocetkom'].'
';

@mysql_query
('

UPDATE '.$GLOBALS["rspredpona"].'clanky
SET kom='.$zaznam['spravnypocetkom'].' where link="'.$zaznam['clanek'].'"'

,$GLOBALS["dbspojeni"]

);
}

echo '
</html>
';
?>


a tu su hlasenia:

Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /httpd/html/ovask/www/comments_recount.php on line 22

($result = mysql_query($sql,$GLOBALS["dbspojeni"]);)

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /httpd/html/ovask/www/comments_recount.php on line 25

(while ($zaznam = mysql_fetch_assoc($result)) )



Celkem upraveno 1×. Poslední úprava yard v 03.09.2006 13:33.

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: cZip (IP adresa zaznamenána)
Datum: 2006-09-04, 08:46

No tak me to zaznamy s 0 komentarema vynechalo... proto jsem to psal...

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-09-04, 11:43

cZip napísal/a:
-------------------------------------------------------
> Jeste tam chybi natavit pocet na nulu k kterych
> neni zadny komentar...
>
> Pred: while ($zaznam =
> phprs_sql_fetch_assoc($result)) ...
>
> dejte jeste tohle:
>
> $sql = 'UPDATE
> '.$GLOBALS["rspredpona"].'clanky SET kom=0;';
> phprs_sql_query($sql,$GLOBALS["dbspojeni"]);
>
> Cauec cZip


Presne tak :) ten script som zbuchol v rýchlosti, na túto môžnosť som úplne zabudol. Určite by to šlo spraviť ešte elegantnejšie no každopádne toto riešenie funguje správne.

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2006-09-04, 11:48

cZip, viem viem. potom som to zistil ked som si spomenul, ze v rs_komentare sa clanky bez komentarov nevedu ziadne informacie, preto by to tu nulu nemalo ani ako vratit.

____________________
smiko.host.sk/phprs/

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: cZip (IP adresa zaznamenána)
Datum: 2006-09-04, 15:47

Dovolil jsem si to malinko učesat:

<?php
######################################################################
#
#	Uprava poctu komentarov v tabulke clankov po ich hromadnom vymazani z tab. komentare
#
######################################################################
define('IN_CODE',true);
include_once('config.php');
$dbspojeni = ( function_exists('phprs_sql_dbcon') ? phprs_sql_dbcon() : dbcon());

echo  '<html><head><style>body {font-family: verdana; font-size: 10px;}</style></head><body>';

$sql = 'SELECT COUNT( idk ) as spravnypocetkom, clanek FROM `'.$GLOBALS['rspredpona'].'komentare`	GROUP BY clanek';
$result = mysql_query($sql,$dbspojeni);

$sql = 'UPDATE '.$GLOBALS["rspredpona"].'clanky SET kom=0;';
mysql_query($sql, $dbspojeni);

while ($zaznam = mysql_fetch_assoc($result))
{
  echo 	'<br>pre clanok: '.$zaznam['clanek'].' nastavujem pocet komentarov:'.$zaznam['spravnypocetkom'].'';
  $sql = 'UPDATE '.$GLOBALS["rspredpona"].'clanky SET kom='.$zaznam['spravnypocetkom'].'where link="'.$zaznam['clanek'].'";';
  mysql_query($sql, $dbspojeni);
}
echo  '</body></html>';
?>


Melo by to fungovat na vsech verzich PhpRS

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-09-04, 16:39

Super, a vitaj späť!

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: cZip (IP adresa zaznamenána)
Datum: 2006-09-04, 16:56

pa3k napsal/a:
-------------------------------------------------------
> Super, a vitaj späť!
>
> | PATRIK JÁN | TRIDENT.SK | GREENHEART.SK |


Dikes, doufam ze to uz nebude s takovou dlouhou prestavkou ;-)

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: yard (IP adresa zaznamenána)
Datum: 2006-09-05, 00:16

Nejako to neslape... pouzil som to tu [http://www.ova.sk/comments_recount.php] a nieco to nastavi, ale je toho podla mna malo a tiez vsetko ostatne vynuluje a nenastavi spravne. Comments.php som tam zatial vypol, ak treba na chvilku povolim, este tam nemam ten antispam patch :(

Re: Jak hromadně smazat komentáře?
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2006-09-05, 09:13

> ale je toho podla mna malo a tiez vsetko ostatne vynuluje a nenastavi spravne

Tak podla teba je to *ASI* málo? Ak sa ti to nezdá tak si to skontroluj.

Jít na stránku:  12Další
Aktuální stránka:1 z 2


Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.