random banners

Status
Niet open voor verdere reacties.

gebruiker35

Gebruiker
Lid geworden
29 mrt 2008
Berichten
434
Ik heb een website, en daar moeten op verschillende plaatsen banners worden geplaatst.

Nu heb ik een lijst van 32 banners, en iedere keer moeten die weer ergens anders staan.

Nu wil ik de banners laten verschijnen door het bestand banners.php te includen. Ik heb nu het volgende, waar iedere keer steeds 1 banner (steeds op verschillende plaatsen) er dubbel in staat:

PHP:
<?php
$sql = "SELECT * FROM oa_banners";
$res = mysql_query($sql);
$banners = array();
if ($res && mysql_num_rows($res) >= 1)
	{
	while ($row = mysql_fetch_array($res))
		{
		if(in_array($row[bannerid], $niet))
			{
			}
else { 
			if($dg == ""){ $dg = "0"; } else { $dg++; }
			$bannerds[$dg] = $row[bannerid];

 }
		}
	}

$bannerds1 = rand(0, $dg);
if($dbd == "")
	{
 $dbd = "0";
	}
$niet[$dbd] = $bannerds1;
$dbd++;
echo " de banner: $bannerds[$bannerds1] ";
$dg = "";
?>

Wat doe ik fout?
 
Het is vrij simpel

PHP:
  $dbres            = mysql_query("SELECT * FROM `banner` WHERE `gezien`=`gezien` > '0' ORDER BY rand() LIMIT 1");
	$banner           = mysql_fetch_object($dbres);

Verander naar jou script
 
Het maakt geen zak uit of je er nou een array van maakt of een object.

Maar vertel eens wat je er precies mee wilt bereiken. Je krijgt een resultset met alle banners in de database. En dan? Die wil je allemaal in een array hebben?

En daar wil je willekeurig 1 banner van weergeven?

Dat kan wel makkelijker:

PHP:
$rResult = mysql_query ( "SELECT * FROM oa_banners ORDER BY RAND() LIMIT 1" );

$aResult = mysql_fetch_assoc ( $rResult );

echo $aResult[ 'naamVanHetVeld' ];

Of probeer je iets anders te bereiken? Wil je dan proberen het wat duidelijker uit te leggen?
 
Beweer ik dat het niet werkt? Volgens mij beweert de TS dat, anders zou ie het hier niet posten. Maar als ie even vertelt wat exact de bedoeling is, dan kunnen we gericht helpen.
 
Er mag geen banner dubbel op de pagina voorkomen, en bij mij komt er steeds 1 dubbel voor, maar ik ga met jullie tips morgen aan de gang!
 
Ik zie ook nergens een check op de eerste random waarde.

Kwestie van 2 random waardes genereren, kijken of waarde 2 niet gelijk is aan waarde 1 en je bent klaar.
 
Maar wil je dan alle banners in een willekeurige volgorde weergeven? Dan zit je volgens mij nog veel te moeilijk te doen:

PHP:
<?php

  $sQuery = "SELECT * FROM oa_banners ORDER BY RAND()"

  $rResult = mysql_query ( $sQuery );

  while ( $aResult = mysql_fetch_assoc ( $rResult ) ) {

    echo $aResult[ 'naamVanHetVeld' ];

  }

?>

Nu haal je ze in een random volgorde uit de database en geef je ze in die volgorde weer. Als er dan nog een dubbele tussen zit, dan staat ie dubbel in de database.
 
Thanks, dit is de oplossing geworden:

Maar wil je dan alle banners in een willekeurige volgorde weergeven? Dan zit je volgens mij nog veel te moeilijk te doen:

PHP:
<?php

  $sQuery = "SELECT * FROM oa_banners ORDER BY RAND()"

  $rResult = mysql_query ( $sQuery );

  while ( $aResult = mysql_fetch_assoc ( $rResult ) ) {

    echo $aResult[ 'naamVanHetVeld' ];

  }

?>

Nu haal je ze in een random volgorde uit de database en geef je ze in die volgorde weer. Als er dan nog een dubbele tussen zit, dan staat ie dubbel in de database.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan