Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Dingusių postų skaičiaus atkūrimas nariui

Parašė ozzWANTED· 2007 Gru. 20 15:12:50
#1

Taigi, po per mano žioplumą sugebėjimo nudropinti userių duom. bazės lentelę, ir atkurimą 9 dienų senumo, teko greitai kažką galvoti kaip su postų skaičiumi(daugelis kaip ir tikėjausi, tapo nepatenkinti). Daugiau nei 50 prarastų narių nors ir nepavyks atkurti, tačiau postus atstatyti yra įmanoma.
Todėl parašiau šį primityvų skriptuką, kuris prisumuoja per tam tikrą periodą, prie esamo nario postų skaičiaus.
<?php
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_lastvisit>'1197324000'");
while ($dataz = dbarray($result)) {
   $add = dbcount("(post_id)", "posts", "post_author='".$dataz['user_id']."' AND post_datestamp>'1197324000' AND post_datestamp<'1198156000'");
   $posts_new = $dataz['user_posts'] + $add;
   $query = dbquery("UPDATE ".$db_prefix."users SET user_posts='$posts_new' WHERE user_id='".$dataz['user_id']."'");
   echo "Vartotojo ID: ".$dataz['user_id']." dabar: ".$dataz['user_posts'].", pridėti: $add, vėliau: $posts_new<br>";
}
?>




UNIX data, tai laikas sekundėmis nuo 1970 01 01.
UNIX datą sužinoti to laiko galite čia http://www.onlineconversion.com/...

Patarčiau visiems pradžiai prasitestuoti kokią informacija bus keičiama, pasinaudojant šį skirptą:
<?php
$result = dbquery("SELECT * FROM ".$db_prefix."users WHERE user_lastvisit>'1197324000'");
while ($dataz = dbarray($result)) {
   $add = dbcount("(post_id)", "posts", "post_author='".$dataz['user_id']."' AND post_datestamp>'1197324000' AND post_datestamp<'1198156000'");
   $posts_new = $dataz['user_posts'] + $add;
   // $query = dbquery("UPDATE ".$db_prefix."users SET user_posts='$posts_new' WHERE user_id='".$dataz['user_id']."'");
   echo "Vartotojo ID: ".$dataz['user_id']." dabar: ".$dataz['user_posts'].", pridėti: $add, vėliau: $posts_new<br>";
}
?>




Turėtume gauti lentelę panašią į:


Na o tik tada execute'inti pirmąjį skriptą šioje temoje.

Sėkmės. Tikiuosi kam nors padės. Ir darykite duom. bazės kopijas bent kartą į 5 dienas.

Redagavo Fanio· 2007 Gru. 20 16:12:31

Parašė Fanio· 2007 Gru. 20 16:12:23
#2

Kuo dažniau darysi tuo geriau :) Beto gerai tu ten sugebėjai :D

Parašė Enzo· 2007 Gru. 20 16:12:48
#3

Aš darau kasdieną. Manau gerai taip.;)