login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Random banner (Opgelost)

Offline koosax - 22/01/2009 19:59
Avatar van koosaxLid Hoi,

Ik ben voor mijn website bezig met een soort banner systeem waarbij een random banner (met link) getoond wordt wanneer deze nog genoeg kliks over heeft.

Dus als er meerdere banners in mijn database staan met allemaal meer dan 1 kliks over moet er een willekeurige banner getoond worden.

Heeft iemand hier misschien een script voor want ik kan nergens een "werkende" vinden.

Alvast bedankt  

14 antwoorden

Gesponsorde links
Offline mathiasB - 22/01/2009 20:01 (laatste wijziging 22/01/2009 20:02)
Avatar van mathiasB HTML interesse Zo te horen ken je php en sql?

dan raad ik je dit aan

genereer hiermee een random nummer (waarbij minimum en maximum een soort Id uit je database zijn) en toon dan de image die bij the bekomen Id bijhoort
Offline JPW120 - 22/01/2009 20:04
Avatar van JPW120 HTML interesse Misschien kan dit je helpen rand.
Offline koosax - 22/01/2009 20:06
Avatar van koosax Lid Zoiets als wat je bedoelt heb ik al alleen krijg ik gewoon een witte pagina te zien en geen banner.  

  1. <?
  2. include 'besturing.php';
  3.  
  4.  
  5. $num_displayed = 1 ;
  6.  
  7.  
  8. $result = mysql_query ("SELECT * FROM leden WHERE kliks>0 ORDER BY RAND() LIMIT $num_displayed");
  9.  
  10.  
  11. while ($row = mysql_fetch_array($result))
  12.  
  13. {
  14.  
  15. echo "<a href=\"" . $row["Url"] . "\">
  16. <img src=\"" . $row["Banner"] . "\" border=0 alt=\"" . $row["text"] . "\">
  17. </a>" ;
  18. }
  19. ?>


klopt deze code wel of doe ik iets helemaal fout  
Offline mathiasB - 22/01/2009 20:10 (laatste wijziging 22/01/2009 20:14)
Avatar van mathiasB HTML interesse Je moet de functie Rand invullen op deze manier bijvoorbeeld:

  1. $random = rand($kleinsteid, $grootsteid);


je kan deze Id's uit je tabel halen (op voorwaarde dat je zo een veld hebt in je tabel)

  1. $kleinsteid = mysql_query("SELECT Id FROM leden WHERE kliks > 0 ORDER BY Id ASC LIMIT 0, 1");
  2. $grootsteid = mysql_query("SELECT Id FROM leden WHERE kliks > 0 ORDER BY Id DESC LIMIT 0, 1");


waarbij je veldnaam dan Id is.

Wat ook misschien nodig is, is de controle of er wel degelijk zo een Id is (moest die toevallig verwijderd zijn)
Offline Wim - 22/01/2009 20:13 (laatste wijziging 22/01/2009 20:15)
Avatar van Wim Crew algemeen
mathiasB schreef:
Je moet de functie Rand invullen op deze manier bijvoorbeeld:

[..code..]

je kan deze Id's uit je tabel halen (op voorwaarde dat je zo een veld hebt in je tabel)

[..code..]

http://dev.mysq...ction_rand


gaaaaaaaaaaaaaap


//edit:
Citaat:
RAND() in a WHERE clause is re-evaluated every time the WHERE is executed.

You cannot use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times. However, you can retrieve rows in random order like this:

mysql> SELECT * FROM tbl_name ORDER BY RAND();



@koosax: echo voor je while-lus eens een mysql_num_rows, volgens mij voldoet geen van je gegevens in je database aan de eisen...?
Offline mathiasB - 22/01/2009 20:15
Avatar van mathiasB HTML interesse Ow... nouja 
Offline koosax - 22/01/2009 20:16
Avatar van koosax Lid Het probleem zit hem niet echt in die RAND LIMIT maar in het feit dat er niks getoond word

Ik heb nu LIMIT gewoon op 1 staan dus als het goed is krijg ik zoiezo maar 1 banner te zien.

  1. <?
  2. include 'besturing.php';
  3.  
  4.  
  5. $result = mysql_query ("SELECT * FROM leden WHERE kliks>0 ORDER BY RAND() LIMIT 1");
  6.  
  7.  
  8. while ($row = mysql_fetch_array($result))
  9.  
  10. {
  11.  
  12. echo "<a href=\"" . $row["Url"] . "\">
  13. <img src=\"" . $row["Banner"] . "\" border=0 alt=\"" . $row["text"] . "\">
  14. </a>" ;
  15. }
  16. ?>


Maar als ik nu via mijn localhost de pagina open zie ik het volgende:
0 ORDER BY RAND() LIMIT 1"); while ($row = mysql_fetch_array($result)) { echo " \"" " ; } ?>

Ik heb alleen geen flauw idee wat dan niet goed is gescript.
Offline mathiasB - 22/01/2009 20:17 (laatste wijziging 22/01/2009 20:17)
Avatar van mathiasB HTML interesse maak je een databaseconnectie?
Offline JPW120 - 22/01/2009 20:17
Avatar van JPW120 HTML interesse Ondersteun jij wel short tags?
Offline koosax - 22/01/2009 20:19
Avatar van koosax Lid Ik heb wel een database connectie (besturing.php)

Mijn kennis van PHP/MYSQL is niet heel groot: Oftwel wat zijn short tags  
Offline mathiasB - 22/01/2009 20:19
Avatar van mathiasB HTML interesse maak eens van die eerste tag
<?

<?php
Offline Wim - 22/01/2009 20:20
Avatar van Wim Crew algemeen short tag: <?
voluit: <?php

JPW bedoeld dus om even met <?php te proberen ipv met <?
Offline koosax - 22/01/2009 20:21 (laatste wijziging 22/01/2009 20:23)
Avatar van koosax Lid Dat was het, heel erg bedankt iedereen  
Offline JPW120 - 22/01/2009 20:21
Avatar van JPW120 HTML interesse @koossax
Citaat:
maak eens van die eerste tag
<?

<?php

Die eerste dat is een short tag, <? niet iedere host ondersteunt dat.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.323s