Hola, puse unos banners rotativos en mi web. Hasta aca todo bien, el problema es que los selecciona aleatoriamente y los repite, ademas yo puse 2 banner en el header y otros 2 en el footer, la idea seria que tomara de la misma base de datos los banner, pero que en cada uno pongo uno diferente y ademas no se repitan, es decir que cada uno muestra la totalidad de los banners antes de arrancar de nuevo. No se si fui muy claro, abajo les pongo el codigo que utilice, gracias.
   archivo para los banner:   Código PHP:
    <?php
 
//  Conecta con el servidor mysql
  $link = mysql_connect('******', '*********', '***********************');
  if(!$link) {
 
    // Si no  conecta, muestra un error y termina la ejecucion
    die('No  se pudo conectar con la base de datos:' . mysql_error());
 }
 
// Selecciona la base de datos que contiene la  tabla banner
  if(!mysql_select_db('elmati26_alertpay',  $link))
  {
 
    // Si no  se puede seleccionar muestra error y termina ejecucion
     die('Error seleccionando base de datos: ' . mysql_error());
  }
 
// Toma un banner aleatorio de la base de datos
  $sql = "SELECT banner_id, nombre, url, url_imagen FROM banner ORDER BY RAND() LIMIT 1";
  $res = mysql_query($sql);
list($banner_id, $nombre, $url, $url_imagen) =  mysql_fetch_array($res);
 
// Muestra el banner
  echo "<a href=\"banner-clic.php?banner_id=".$banner_id."\"target=_blank>\n";
  echo "<img  src=\"".$url_imagen."\" width=\"468\"  height=\"60\" ";
  echo "border=\"0\"  alt=\"".$nombre."\"></a>\n";
 
// Actualiza la cantidad de impresiones del  banner
  $sql = "UPDATE banner SET impresiones=impresiones+1  WHERE banner_id=".$banner_id." LIMIT 1";
  mysql_query($sql);
 
?>    
   archivo para los clicks e impresiones:   Código PHP:
    <?php
 
// Archivo 'banner-clic.php'
 
// Conecta con el servidor mysql
  $link = mysql_connect('***********', '**************', '**************');
  if(!$link) {
 
    // Si no  conecta, muestra un error y termina la ejecucion
    die('No  se pudo conectar con la base de datos:' . mysql_error());
  }
 
// Selecciona la base de datos que contiene la  tabla banner
  if(!mysql_select_db('elmati26_alertpay',  $link))
  {
 
    // Si no  se puede seleccionar muestra error y termina ejecucion
     die('Error seleccionando base de datos: ' . mysql_error());
  }
 
// Revisa si se paso el parametro correcto
  if(!isset($_GET['banner_id']) || !eregi('^[0-9]+$',  $_GET['banner_id']))
  {
    die('Ha  seguido un enlace incorrecto');
  }
$banner_id = $_GET['banner_id'];
$sql = "SELECT url FROM banner WHERE  banner_id=" . $banner_id;
  $res = mysql_query($sql);
if(mysql_num_rows($res) == 0)
  {
 
    // Si el  banner no existe muestra el error y termina ejecucion
     die('Este banner no existe');
  }
  else
  {
     list($url) = mysql_fetch_array($res);
 
  //  Actualiza la cantidad de clics
    $sql =  "UPDATE banner SET clics=clics+1 WHERE banner_id=".$banner_id."  LIMIT 1";
    mysql_query($sql);
 
  //  Redirecciona el navegador
     header('Location: ' . $url);
    die();
  }
?>    
  en cuanto al ORDER BY RAND() ya probe ordenarlo por banner_id o 1 y no funciona.  
en el header lo que hago es hacer un include asi:   Código HTML:
 <table width="936" border="0" align="center">
  <tr>
    <td width="479"><div align="center"><?php include ('banner_rot.php');?></div></td>
 
    <td width="447"><div align="center"><?php include ('banner_rot.php');?></div></td>
  </tr>
</table>  pero logicamente me selecciona al azar los banner, pero los repite a veces uno con el otro ya que es el mismo codigo, ademas de que a veces pasa algun banner 2 0 3 veces seguidas. 
Alguna solucion? 
Muchas gracias a todos de antemano.