reklamny system
reklamny system
potrebujem nejaky skript ktory bude generovat bannery na zaklade dat ulozenych v db ... nemate niekto ???
-
vivaSlovakia
Guru wannabe
- Príspevky: 2119
- Registrovaný: 29 júl 2006, 10:30
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>
<?
}
?>thanks men ale toto si viem napisat aj sam ...
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 ...
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 ???
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
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.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()
Kód: Vybrať všetko
SELECT * FROM tabulka ORDER BY RAND()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) ...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.pripadne pridaj na koniec este limit aby si vyberal len jeden riadok.Kód: Vybrať všetko
SELECT * FROM tabulka ORDER BY RAND()
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
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
takze to funguje??? lebo mne to nejak logicky nesedi .. jedine ze by to bola nejaka standardna konstrukcia jazyka ...\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
//EDIT: njn funguje ...
skusal si to ??? lebo ja mam v db dve polozky jednu s id 1 a 3 ... a vzdy mi vybere polozku s id 1mastermind 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.pripadne pridaj na koniec este limit aby si vyberal len jeden riadok.Kód: Vybrať všetko
SELECT * FROM tabulka ORDER BY RAND()
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];
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17
ano skusal som a vybera mi to nahodne.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];
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()select funguje tak ako ma.
-
mastermind
VIP
- Príspevky: 4810
- Registrovaný: 09 feb 2005, 13:17