reklamny system

Programovacie jazyky, rady, poradňa...
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

reklamny system

Príspevok od používateľa etel »

potrebujem nejaky skript ktory bude generovat bannery na zaklade dat ulozenych v db ... nemate niekto ???
vivaSlovakia
Guru wannabe
Guru wannabe
Príspevky: 2119
Registrovaný: 29 júl 2006, 10:30

Príspevok od používateľa vivaSlovakia »

Tu to mas, napisal som to na rychlo takze tam mozu byt chyby uprav si to podla seba zaklad mas

Kód: Vybrať všetko

<?
include ("mysql.php");  // CONNECT NA DATABAZU
$data = mysql_query("SELECT * FROM tabulka");
while ($banner = mysql_fetch_array($data))
{
?>
<a href="<? echo "$banner['odkaz']";?>" target='_blank'><img src="<? echo "$banner['obrazok']";?>"></a>
<?
}
?>
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

thanks men ale toto si viem napisat aj sam ... :wink:

keby ste mi aspon vedeli logicky napisat ako by to malo fungovat - skript si napisem sam ... mam v db ulozene bannery, pouzijem funkciu RAND aby mi vylosovalo nejake id s tabulky a podla toho mi zobrazi banner ... ale co ak take id nefunguje aj keby som to osetril tak co ak ani to co potom vylosuje nebude existovat ??? :? a coked tam bude 2000 poloziek a stoho 50 poloziek budu bannery urcene na zobrazenie a tie ostetne tam vobec nebudu ... myslim to tak ze id budu poukladane v db takto : 5,180,164,1186,214 ...
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

daj SELECT * FROM tabulka (dufam ze v DB nemas cele subory)

a potom vyber z vysledku jeden nahodny prvok cez array_rand()
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

gwixt napísal:daj SELECT * FROM tabulka (dufam ze v DB nemas cele subory)

a potom vyber z vysledku jeden nahodny prvok cez array_rand()
takto by som to urcite neriesil. nie je tym vyuzity potencial mysql servera. ja sa drzim hesla, ak sa da nieco urobit na db serveri tak to tam aj urobim.

Kód: Vybrať všetko

SELECT * FROM tabulka ORDER BY RAND()
pripadne pridaj na koniec este limit aby si vyberal len jeden riadok.
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

mastermind napísal:takto by som to urcite neriesil. nie je tym vyuzity potencial mysql servera. ja sa drzim hesla, ak sa da nieco urobit na db serveri tak to tam aj urobim.

Kód: Vybrať všetko

SELECT * FROM tabulka ORDER BY RAND()
pripadne pridaj na koniec este limit aby si vyberal len jeden riadok.
njn ja som tiez najprv pozeral ako to spravit cisto cez SQL ale nepoznam sql az tak detailne ... najprv som to chcel skusit cez LIMIT RAND(), 1 .. ale to nejde (kedze limit bere ako parametre len konstantne integery) ...

a si si isty ze to ORDER BY RAND() ide??? ved parametrom ORDERU ma byt stlpec, ci ne? a rand() ti vrati nejake cislo ktore sice moze byt brane ako poradie stplca ale co ked tam tolko stlcov nie je .. hmm ... mozno trepem .. nevadi :oops:
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

tiez som sa nad tym zamyslal ako moze fungovat nieco take. RAND() vracia float medzi 0,1. je mozne ze rand vygeneruje kazdemu zaznamu jedno nahodne cislo a potom to usporiada
gwixt
Addict
Addict
Používateľov profilový obrázok
Príspevky: 3912
Registrovaný: 24 sep 2005, 16:50
Bydlisko: Trash-Can

Príspevok od používateľa gwixt »

mastermind napísal:tiez som sa nad tym zamyslal ako moze fungovat nieco take. RAND() vracia float medzi 0,1. je mozne ze rand vygeneruje kazdemu zaznamu jedno nahodne cislo a potom to usporiada
takze to funguje??? lebo mne to nejak logicky nesedi .. jedine ze by to bola nejaka standardna konstrukcia jazyka ...\

//EDIT: njn funguje ...
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

mastermind napísal:takto by som to urcite neriesil. nie je tym vyuzity potencial mysql servera. ja sa drzim hesla, ak sa da nieco urobit na db serveri tak to tam aj urobim.

Kód: Vybrať všetko

SELECT * FROM tabulka ORDER BY RAND()
pripadne pridaj na koniec este limit aby si vyberal len jeden riadok.
skusal si to ??? lebo ja mam v db dve polozky jednu s id 1 a 3 ... a vzdy mi vybere polozku s id 1

moj kod:

Kód: Vybrať všetko

$check = mysql_query("SELECT * FROM ban_banner ORDER BY RAND() limit 1") or die(mysql_error());
$im = mysql_fetch_array($check);
echo $im[id];
:?
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

alebo najlepsia by bola nejaka funkcia ktora zrebuje z cisel ktore zadam ja ... napr zadam cisla 20, 58, 65 a zrebovat bude iba s tychto troch .... dasa to ?? :?:
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

etel napísal:skusal si to ??? lebo ja mam v db dve polozky jednu s id 1 a 3 ... a vzdy mi vybere polozku s id 1

moj kod:

Kód: Vybrať všetko

$check = mysql_query("SELECT * FROM ban_banner ORDER BY RAND() limit 1") or die(mysql_error());
$im = mysql_fetch_array($check);
echo $im[id];
:?
ano skusal som a vybera mi to nahodne.
co sa tyka druhej poziadavky ze chces vyberat iba niektore veci

Kód: Vybrať všetko

SELECT * FROM tabulka t where t.id in (1,4) order by rand()
v zatvorke (1,4) zadefinujes mnozinu ID ktore moze vyberat.
select funguje tak ako ma.
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

stale ... nist .... nemoze to robit aj verzia mysql ??? ja mam v. 3.23.54 .... hmmmm
mastermind
VIP
VIP
Používateľov profilový obrázok
Príspevky: 4810
Registrovaný: 09 feb 2005, 13:17

Príspevok od používateľa mastermind »

v dokumentacii sa nespomina nic o tom kedy bola tato funkcionalita doplnena ale ten server co mas je dsot stary, takze je dost pravdepodobne ze to je tym
etel
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 232
Registrovaný: 16 okt 2006, 10:37
Kontaktovať používateľa:

Príspevok od používateľa etel »

jasne ... na v. 3.23.56 mi to uz ide ... :D
mejlo
Expert
Expert
Používateľov profilový obrázok
Príspevky: 149
Registrovaný: 03 jún 2005, 22:38
Bydlisko: Bratislava
Kontaktovať používateľa:

Príspevok od používateľa mejlo »

mailer
Star
Star
Príspevky: 544
Registrovaný: 01 jún 2006, 16:56

Príspevok od používateľa mailer »

mejlo napísal:PhpPgAds :P :D
neda mi to sa nespytat ake su rzodiely medzi PhpPgAds a phpadsnew,"firma" je tusim sa ista :?
Napísať odpoveď