Notice: Undefined index: cache_time_bot in /hosting/mozektevidi.net/www/inc/sablona-menu.php on line 109
Počet komentářů od nicku (c) Oldřich Šálek

Počet komentářů od nicku (c) Oldřich Šálek

Počet komentářů od nicku

Primitivní, jednoduchý PHP skript pro spočítání počtu příspěvků od jednoho uživatele

Původní skript

Nejprve jsem se snažil řešit problém přes dvourozměrné $pole, ve kterém bude hodnota nick, pocet. Jenože ať jsem se snažil jak jsem se snažil, nikdy se mi nepovedlo dořešit do konce. Většinou jsem ztroskotal na možnosti, že dva nicky mají shodný počet komentářů, tudíž nešli seřadit.
Pak mě napadlo využít pomocnou temp tabulku, do které budu ukládat $nick a $pocet. Moje řešení fungovalo krásně, na hostingu savany trval výpočet pouze 0,2 sekundy. Navíc jsem měl vyřešené kešování údajů.

Starý php skript

<?
//$sql = mysql_query("TRUNCATE TABLE `rs_kom_stat`");
$query  mysql_query("SELECT * FROM rs_kom GROUP BY nick " ) or die (mysql_error());
while (
$zaznam  mysql_fetch_array ($query ))
{
  
$ktery_nick  $zaznam["nick" ];
  
$nick $zaznam["nick" ];
  
  
$dotaz mysql_query (" SELECT * FROM  rs_kom WHERE nick = "$ktery_nick"" ) or die ( mysql_error());
  
$pocet mysql_num_rows($dotaz);
  if (
$pocet  10 )
  {
     
$uz_existuje  mysql_query("SELECT * FROM " .prefix ."kom_stat WHERE nick ="$nick" LIMIT 1" ) or die ( mysql_error());
    if (
mysql_num_rows($uz_existuje )<=0 )
    { 
//neexistuje záznam
       
mysql_query (" INSERT INTO ". prefix. "kom_stat  VALUES ("", "$nick", "$pocet")") or die (mysql_error());
      }
     else
     { 
// existuje
       
MySQL_Query ("UPDATE  ". prefix. "kom_stat SET  pocet = $pocet WHERE nick="$nick" " );
    }
  }
}

$vypis mysql_query (" SELECT * FROM ".prefix. "kom_stat  ORDER BY pocet_kom DESC LIMIT 10" )  or die (mysql_error ());
$i  1;
while (
$z_db mysql_fetch_array ($vypis ))
{
  
$nick $z_db ["nick"];
  
$pocet $z_db ["pocet_kom" ];
  echo 
"$i $nick napsal $pocet příspěvků <br /> ";
  
$i++;
}

?>

Nový skript

Dneska mi matej21 poslal na do komentářů skript, kterému jsem nejprve nevěnoval pozornost. Měl pouze pár řádků, oproti mému 36 řádkovému kódu. Myslel jsem, že nebude fungovat, už jenom pohled na proměnou $řádky (háčky a čárky fuj) mě utvrzoval i ztraceném času.
Když jsem ovšem skript spustil a on hned fungoval, žasnul jsem. Můj 36 řádkový problém vyřešen efektivněji na pár řádkách kódu. Kód je i 10x rychlejší, než můj starý. Jedním slovem, úžasné.

Upravený php kód


<?
$query 
mysql_query("SELECT  COUNT( * ) AS `radku` , `nick`
FROM `rs_kom`
GROUP BY `nick`
ORDER BY `radku` DESC
LIMIT 25"
);
$poradi 1;
while(
$row mysql_fetch_array($query))
{
echo 
$poradi ". " $row["nick"] . " napsal "  $row ["radku"]  . " příspěvků<br/>" ;

$poradi++;
}
?>

Statistiky komentování

Statistiky můžete vidět na mozektevidi.net/co/statistiky. Hned za uživatelem MzK následuje také seznam největších spamerů na mozektevidi.net Smích

ico Oldřich Šálek | ico 14. května 07, 06:05 | ico služby | přečteno: 1970x

Diskuze ke článku

Komentáře a diskuze ke článku tady
diskuze ke článku

Kategorie článků

Náhodné články

Poslední články

  • Objevení ameriky – Geocaching
  • HTC TyTN II Windows Mobile 6 kritika
  • HTC TyTN II (Kaiser) je doma
  • Koupit HTC Kaiser nebo SonyEricsson Xperia X1
  • Konečně prázdniny
  • Tuning fest 2008 v Hradci
  • Značky reklama firmy
  • Votvírák 2008 fotky a zážitky
  • Doba SSD disků se blíží
  • Staročeské máje 2008 – hodnocení
  • Tagy ke stránce

    čeština do icq 6 atlas icq 5 atlas banner killer atlas icq 5.1 v češtině počet mysql dotazů atlas icq 5.1 v češtině ke stažení icq 6 baner killer download atlas icq 5.1 v češtině ke stazeni TrackMania nations nicky atlas icq 6 banner killer icq atlas 5.1 v češtině ke stazeni atlas icq6 Banner Killer čeština do icq 6 atlas download icq 5.1 atlas download v češtině atlas icq6 banner banner killer na icq od atlasu

    Poslední komentáře

    RSS export