Archív Inet.sk Pôvodný autor: Rasťo Turek
29. 10. 2003 o 00:00 7476x

Php v praxi – tretia časť: Náhodné vypísanie informácie do Vašich stránok

Vítam Vás pri treťom seriáli o programovaní v php. Dnes si ukážeme, ako si môžete vypísať do Vašich stránok náhodné informácie, teda ako napríklad typ pre Vašich návštevníkov. Môžete si vybrať z dvoch možností. Po prvé môžete tieto tipy čítať z databáze a po druhé si ich môžete načítavať z externého súboru. Takže začneme možnosťou číslo jeden a to je načítavanie z databáze. ...
Php v praxi – tretia časť: Náhodné vypísanie informácie do Vašich stránok

Najskôr si musíme navrhnúť tabuľku. Tabuľka sa bude volať Tipy a stĺpce, budeme mať id s vlastnosťou auto_increment, aby sme si mohli vkladať tipy cez vlastného admina a ďalším stĺpcom bude položka tipy do ktorej budeme ukladať samotné tipy. Takže tu je kompletný návrh tabuľky tipov.

CREATE TABLE tipy (
  id int(8) NOT NULL auto_increment,
  tipy text,
  PRIMARY KEY (id)
) TYPE=MyISAM;

Jediné, čo by Vás mohlo na tejto tabuľke zaujať je to, že tipy majú prioritu text, aby ste si mohli ukladať tipy o veľkých dĺžkach.
A tu je kompletný script tip_sql.php aj s popisom.

<?php
// načítame si pripojenie k službe MySQL a pripojíme sa k databáze
include("config.php");
// vytvoríme si funkciu pre zobrazovanie tipov
function tip()
{
  // načítame si tipy z databáze a vyberieme si priamo z tabuľky tipy
  @$citaj = mysql_query("SELECT tipy FROM tipy");
  // zistíme, koľko sa nachádza tipov tabuľke
  @$tipov = mysql_num_rows($citaj);
  // zabezpečí, aby sme nikdy nedostali prázdny riadok
  $tipov--;
  // vygenerujeme si náhodne číslo
  $rand = Rand(0,$tipov);
  // vygenerujeme si jeden z tipov ktorý nám vyšiel podľa náhodného čísla
  @$generuj = mysql_result($citaj,$rand,0);
  // orežeme koniec riadku, aby sa tipy zobrazovali stále rovnako formatované
  $generuj = trim($generuj);
  // vrátime $generuj von z funkcie
  return $generuj;
}
// vypíšeme si tip (je možné použiť aj print)
echo tip();
?>

Script je vysvetlený už v komentároch, ale aj tak by asi stálo za to trošku to opísať. Prvotne si načítame config.php, ktorý si tu už však opisovať nebudeme, nájdete ho v prvej časti nášho seriálu. Vytvoríme si funkciu, ktorú nazveme tip a ktorá nám bude vracať náhodne vygenerovaný tip. Vyberieme si tipy z tabuľky a zo stĺpca tipy. Následne zistíme ich počet v tabuľke a pomocou funkcie rand vygenerujeme náhodné číslo. Zápis do funkcie rand() je nasledovný:

rand(0,x) kde 0 je začiatočné číslo, od ktorého sa počíta a x je konečné číslo. Medzi týmito dvomi číslami si funkcia rand náhodne vyberie jedno číslo a my sme si namiesto x zapísali výsledok o počte záznamov v tabuľke. Ďalej si pomocou funkcie mysql_result() načítame konkrétny tip a to nasledovným spôsobom. Najskôr zapíšeme výber z databáze teda u nás $citaj.

Ďalším parametrom je číslo riadku a my si tam zapíšeme naše náhodne vygenerované číslo. No a posledným parametrom je u nás 0. Hoci je tento parameter nepovinný, my si tam dáme 0, pretože by nám funkcia spravila posun stĺpca. No a napokon si výsledok orežeme funkciou trim(), ktorá nám zabezpečí, že výstupy budú orezané od prípadných medzier, tabulátorov, nových riadkov, ktoré sa môžu nechcene nachádzať na začiatku či konci tipu. Nakoniec vrátime tip von z funkcie a vypíšeme si do stránky. Samozrejme, že sa dajú tieto tipy akokoľvek formátovať.

Ak však na serveri nemáte prístup do služby MySQL, tak máte ešte jednu možnosť. Čítať tipy zo súboru. Poďme si navrhnúť celú aplikáciu. Pre celú aplikáciu potrebujeme mať script, ktorý si nazveme napríklad tip_txt.php a jeden súbor, z ktorého budeme načítavať. Ten si nazveme napríklad tipy. Tento súbor si môžete určiť s koncovkami napríklad txt, dat, alebo aj žiadnou, čo bude náš prípad. Takže tu je celý script na náhodné načítavanie zo súboru bez použitia databáze, ktorý sme si teda nazvali tip_txt.php. 

<?php
// vytvoríme si funkciu ako pri využití databáze
function tip()
{
  // cesta k súboru s tipmi (môže obsahovať takmer akékoľvek koncovky,
  // úplne záleží len na Vás) a treba cestu uviesť v tvare ./tipy ak je
  // súbor v rovnakom priečinku ako tento script, a ../tipy ak je,
  // o priečinok vyžšie
  $subor = "./tipy";
  // načítame si súbor z ktorého budeme čítať tipy
  $file = file($subor);
  // uzamkneme si súbor pre zdieľané čítanie
  flock($subor,1);
  // zistíme, koľko sa nachádza tipov v súbore
  $tipov = count($file);
  // tak ako aj pri použití MySQL si vytvoríme náhodné číslo
  $rand = Rand(0,$tipov);
  // vygenerujeme si jeden z tipov, ktorý nám vyšiel podľa náhodného čísla
  $generuj = $file[$rand];
  // orežeme koniec riadku, aby sa príspevky zobrazovali rovnako formatované
  $generuj = trim($generuj);
  // odomkneme si súbor na ďalšie použitie
  flock($subor,3);
  // uzavrieme si pripojenie k súboru
  fclose($subor);
  //  vrátime $generuj von z funkcie
  return $generuj;
}
// vypíšeme si tip (je možné použiť aj print)
echo tip();
?> 

Poďme si celý script pozrieť pekne od začiatku. Najskôr si vytvoríme funkciu, ktorá nám bude vracať nami náhodne vygenerovaný tip. Ďalej si určíme url k nášmu súboru. Použijeme funkciu na pripojenie k súboru file(), kde zapíšeme cestu k súboru. Aby sa k nášmu súboru v momente prístupu žiadny script nepokúsil pristúpiť či zapísať do súboru súčasne s našim scriptom, uzavrieme tento súbor len na čítanie pre náš script. Potom si zistíme počet tipov v súbore, a to spôsobom - jeden tip sa rovná jeden riadok v súbore. Tak ako aj pri použití databáze si vytvoríme náhodné číslo rovnakým spôsobom, ako som už hore opisoval a vyberieme práve jeden z tipov zo súboru podľa náhodného čísla. Nakoniec orežeme výstup od prípadných medzier a odomkneme súbor pre ďalšie použitie a napokon vrátime jeden z tipov von z funkcie a vypíšeme ich do stránky. Ako som už napísal do komentára, je možné použiť funkciu print aj echo. Je na Vás, ktorú si vyberiete.

Aby sme to kompletne uzavreli, tak tu máte malú časť tipov, ktoré som napísal pre túto ukážku.

TIPY
Ak použijete obrázky typu png, môžete kvalitne s nimi ďalej pracovať v php scriptoch
Ak budete využívať php na písanie kvalitných scriptov, ušetríte si hodiny námahy
Ak využijete službu MySQL, urýchlite a skrášlite Váš web o 50%
Ak budete čítať inet.sk, dozviete sa veľa zaujímavostí zo slovenského internetu J
Ak budete využívať pri práci dokumentáciu k php, napomôžete si k urýchleniu a skvalitneniu Vašej práce
Ak si budete písať scripty sami, budete mať oveľa lepší prehľad a naberiete viacej skúseností
Ak budete preferovať php, môžete vytvoriť mnoho kvalitných opensource projektov
Ak sa Vám nebude dariť programovať v php, navštívte diskusie ako forum.builder.com

Použitie:
Oba tieto scripty môžete využívať u Vás na stránkach a prinášať Vašim používateľom stále nové informácie, ktoré sa však opakujú. Scripty sa dajú využiť na zobrazovanie tipov, vtipov, trikov, citátov, informácií a mnoho iného.

Vylepšenia:
Samozrejme aj tieto scripty sa dajú všelijako vylepšiť, či zmeniť. Napríklad môžete si vytvoriť šablónu pre formátovanie a tieto tipy tak zobrazovať krajšie a oku lahodnejšie, môžete tieto tipy zasielať návštevníkovi na mail či posielať cez SMS. Samozrejme, na tieto vylepšenia potrebujete mať SMS bránu. Našlo by sa toho skutočne veľmi veľa, je len na Vás, ako si ich vylepšíte práve Vy! Rád uvítam ďalšie tipy na mojom maili, poprípade v diskusii.

Upozornenia:
Pozor na tipy načítavané z sql. Tieto tipy sa môžu zobraziť aj dva či trikrát po sebe. Je to práve tým, že náhodné číslo môže byť aj to isté. Pri veľkom množstve tipov sa však takéto prípady stávajú skôr sporadicky ako by boli pravidelnými. 

Dúfam, že sa Vám tento diel páčil, nabudúce nazrieme do problematiky rozkladania textu pri veľkej dĺžke, ako napríklad v internetových denníkoch a následné zabezpečenie rovnako fomrátovaného textu. Chcel by som Vás poprosiť, keďže mi dochádzajú nápady a motivácia, aby ste písali na môj e-mail o problematike, o ktorej by ste si tu chceli prečítať a dozvedieť sa niečo nové. Prosím, nepíšte nič podobné ako „Ako si vytvorím vlastný inet.sk?“, „Ako spraviť vlastný vyhľadávač“ a podobne, pretože by jeden diel seriálu mal asi tridsať strán a tieto časti sú hlavne pre začiatočníkov v php. 

Dúfam, že aj naďalej budete písať do diskusie pod článkami a že budete písať aj kritiku, ktorá ma privádza na cestu, ktorou chcete, aby sa uberali tieto články.


Ďakujem,
Rastislav Turek, break.sk

Novinky a inšpirácie

Z nášho blogu

Prečítajte si novinky, inšpirácie a dôležité informácie zo sveta webhostingu a technológií.

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami Oznamy
21. 10. 2026

Bezpečnostné aktualizácie PHP: Chráňte svoj web pred hrozbami

Vývojársky tím PHP vydal dôležité bezpečnostné záplaty pre všetky oficiálne podporované verzie PHP 8. Na našich serveroch sme nezaváhali ...

Čítať viac
Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás? Oznamy
01. 10. 2026

Gmail končí s funkciou „Odoslať ako“ pre cudzie e-mailové adresy. Čo to znamená pre vás?

Google oznámil, že v januári 2027 zruší v Gmaile funkciu „Odoslať ako“ (Send as) pre e-mailové adresy od iných poskytovateľov. Ak ste si ...

Čítať viac
Večerná „prestávka“ pre server VIP033 Oznamy
25. 09. 2026

Večerná „prestávka“ pre server VIP033

Neustále pracujeme na tom, aby vaše weby bežali hladko, rýchlo a bezpečne. Technológie idú míľovými krokmi vpred a my v Inet.sk s nimi dr...

Čítať viac
Novinky na Inet.sk (09 / 2026) Novinky
09. 09. 2026

Novinky na Inet.sk (09 / 2026)

Posledné mesiace sme v Inet.sk nevenovali len stabilite serverov, ale najmä počúvaniu vašich reálnych skúseností z každodennej praxe. Výs...

Čítať viac

Podpora klientom

Máte ďalšie otázky?

Nezúfajte, pripravili sme pre Vás jednoduché odpovede na najdôležitejšie otázky, ktoré od našich klientov dostávame.

Zistiť viac

Naše výhody

Prečo si nás vybrať?

Našim klientom ponúkame až 30-dňovú záruku vrátenia peňazí.

Sme skutočný slovenský webhosting

Slovenská
firma

Nepatríme pod žiadnu nadnárodnú spoločnosť, sme malá rodinná firma.

Na nás sa môžete kedykoľvek spoľahnúť

Dlhoročné
skúsenosti

Na slovenskom trhu pôsobíme už viac ako 20 rokov, sme overená značka.

Naši prví zákazníci sú stále s nami

Spokojní
zákazníci

Naši zákazníci sú ako naša rodina, preto nám verí už viac ako 1250 klientov.

Maximálna bezpečnosť

Maximálna
bezpečnosť

Chránime Vás pred útokmi i SPAMom. U nás sú Vaše dáta v bezpečí.

Prozákaznícka podpora

Ochotná
podpora

Zakladáme si na individuálnom prístupe, preto Vám vždy radi pomôžeme.

Kvalita a dobrá cena

Férová
cena

Cena pri obnove je rovnaká ako pri objednávke. Nezdražujeme po prvom roku a bez skrytých poplatkov.

U nás sa Vám nič nestratí

Pravidelné
zálohovanie

Vaše dáta zálohujeme každý deň, dostupné sú aj zálohy z pred niekoľkých mesiacov.

Svižný Admin Panel nájdete len u nás

Prehľadný
Admin Panel

Máme rýchly a prehľadný Admin Panel, ktorý zvládne používať naozaj každý.

Správa používateľov

Správa
používateľov

Spravujte svoje projekty bez akýchkoľvek obáv s kolegami alebo externými partnermi.

Máme zľavy pre verných klientov

Vernostné
zľavy

Verní klienti u nás automaticky získavajú 15 % zľavu na každú ďalšiu objednávku.

My Vás nebudeme obmedzovať

Bez
obmedzení

Neobmedzujeme počet databáz, e-mailov, ftp a ani prenos dát.

Hosting pre WordPress

WordPress
na 1 klik

Nainštalujte si obľúbené redakčné systémy rýchlo a jednoducho.

Referencie

Spokojní zákazníci

Pozrite sa, čo o nás povedali naši klienti. Neváhajte a pridajte sa k nám ešte dnes.

Auto 100
Bystricoviny
eCall Slovakia
Filip Jančík
Frost
Merkury Broker
Mi:Su Design
Mesto Nitra
Pro Clienta
Schneider Lekáreň
Vego Marketing
Mesto Zlaté Moravce

Všetky ceny sú uvádzané bez DPH
© 2006 - 2026, Inet.sk, s. r. o., Všetky práva vyhradené

Na našej stránke používame "cookies". Vďaka nim sledujeme návštevnosť, prispôsobujeme reklamu a používateľské nastavenia, čo zlepšuje Váš zážitok z našej stránky. Súhlasíte s ich spracovaním?
Vlastné nastavenia cookies