Foros del Web » Programando para Internet » PHP »

banner con base de datos

Estas en el tema de banner con base de datos en el foro de PHP en Foros del Web. Como puedo hacer un banner que rote aleatoriamente cogiendo las imagenes de una base de datos, pero no que cambie la imagen cada vez que ...
  #1 (permalink)  
Antiguo 29/09/2003, 02:47
 
Fecha de Ingreso: febrero-2002
Mensajes: 15
Antigüedad: 22 años, 9 meses
Puntos: 0
banner con base de datos

Como puedo hacer un banner que rote aleatoriamente cogiendo las imagenes de una base de datos, pero no que cambie la imagen cada vez que entre sino que vaya rotando sin entrar y salir, creo que los tiros estara en utilizar javascript con php pero no se como hacerlo, haber si alguien me puede ayudar.

Gracias y Saludos.
  #2 (permalink)  
Antiguo 29/09/2003, 03:09
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
hombre, normalmente cambian cuando uno entra en la web o se mueve por ella , el royo es saber lo que quieres... pq se puede hacer con colo 5 lineas en php "mas o menos"
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 29/09/2003, 03:10
 
Fecha de Ingreso: febrero-2002
Mensajes: 15
Antigüedad: 22 años, 9 meses
Puntos: 0
no me refiero a que cambie cada cierto tiempo por ejemplo cada 5 segundos, de la otra forma si se como hacerlo el problema lo tengo por que quiero que cambien la imagen del banner cada 5 segundos supongo que habra que utilizar javascript pero no se como hacerlo.
  #4 (permalink)  
Antiguo 29/09/2003, 03:37
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
si , eso es en el foro de java script..., aunq creo que igual con un bucle infinito y usando

Código PHP:
sleep(5)//5 son los segundos de espera 
eso en php creo que se podria hacer, lo que no se es como se comporta un bucle infinito en php, es una interesante pregunta...

http://es2.php.net/manual/es/function.sleep.php

http://es2.php.net/manual/es/function.usleep.php
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 29/09/2003 a las 03:59
  #5 (permalink)  
Antiguo 03/10/2003, 21:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
nuevo ...

Veo que siempre recomiendas "sleep()" , .. pero, sleep() para completamente la ejecución del script.php en curso por el tiempo que determines. PHP (como sabras) tiene tiempo máximo de ejecución (30 segundos por defecto) y .. que se puede variar en tiempo de ejecución via la función set_time_limit() (lo cual explican si mal no recuerdo en el própio manual de PHP en la sección de la función sleep() ..)

El caso es, que .. Piensa en que "PHP" ha de liberarse de la ejecución del script lo antes posible.. Normalmente las "esperas" o "retardos" se usan para "cargar" una u otra página (o si misma con una recarga) .. así que siempre suelen existir tag HTML o bien código javascript para hacer dicho retardo .. como por ejemplo las "META" de refresh .. o el timer() de Javascript (si mal no recuerdo) ..

Imagina tener un "servidor" entero en "sleep" por que tengas unos cuando clientes conectados al mismo (servidor) ejecutando ese script que hace el sleep() ..

Sleep .. más bien se usa en PHP-CLI (cliente) o tal vez PHP-GTK (me imagino) ..

austin

Supones bien. ToDO lo que interactue en el navegador (cliente) sin que se haga una petición a PHP (al servidor) vía un link (que pide una página al servidor) .. usar un formulario .. recarga de página en definitiva ES taréa de javascript/html/dtml .. etc, lenguajes del "lado del servidor" ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 03/10/2003, 22:55
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
juassssss, si tienes razon Cluster, esta semana me emocione un poco con el sleep, tienes toda la razon, pero esq solo hacia unos 3 dias que explique aqui este y....

http://www.forosdelweb.com/showthrea...hreadid=155723


por cambiar un poco-- pero me pase, gracias por recordarmelo
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 03/10/2003 a las 23:00
  #7 (permalink)  
Antiguo 04/10/2003, 00:42
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
umm, me he entretenido un poco pero aqui estoy, bueno, ya se que es una kk y que cualquiera lo supera, pero hay va....

Código PHP:

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Maguma Studio Pro">
        <title>Max Banner</title>
    </head>

        <body bgcolor="#ffffff">
    
<?php
#######################################################################################
# DROP TABLE IF EXISTS `max_banner`;
# CREATE TABLE `max_banner` (
#   `id` int(11) NOT NULL auto_increment,
#   `nombre` varchar(100) NOT NULL default '',
#   `ver` int(1) NOT NULL default '0',
#   PRIMARY KEY  (`id`),
#   KEY `id` (`id`)
# ) TYPE=MyISAM;

# INSERT INTO `max_banner` (`id`, `nombre`, `ver`) VALUES("1", "imagen_01.gif", "0");
# INSERT INTO `max_banner` (`id`, `nombre`, `ver`) VALUES("2", "imagen_02.gif", "0");
# INSERT INTO `max_banner` (`id`, `nombre`, `ver`) VALUES("3", "imagen_03.gif", "1");
#######################################################################################

/*CARGAMOS CONFIGURACION DEL SERVIDOR*/
$sql_host "localhost";    // Host, nombre del servidor o IP del servidor Mysql.
$sql_usuario "xxxxxxx";      // Usuario de Mysql
$sql_pass "xxxxxxx";            // contraseña de Mysql

/*CARGAMOS LA BASE DE DATOS*/
$sql_db "max_banner";     // Base de datos que se usará

/*CARGAMOS LAS TABLAS DE LA BASE DE DATOS*/
$sql_tabla "max_banner"// Nombre de la tabla que contendrá los datos de los usuarios

/*CONECTAMOS CON MYSQL*/
$db_connect mysql_connect($sql_host,$sql_usuario,$sql_pass);
mysql_select_db($sql_db);

/*CARGAMOS TODOS LOS REGISTROS DE LAS BASES DE DATOS*/
$selecttbl "id,nombre";  //Campos tabla


echo "<font face=Verdana size=2 color=Maroon><center>segundos "date("s")."<br>10 segundos =>banner1, 30 segundos =>banner2, 50 segundos =>banner3<br>";

    switch (
date("s")) { //saco los segundos de la hora

        
case '10'//si los segundos coinciden, ejecuta code

            
$id rand(13); //busca un numero entre 1 y 3
            
mysql_query("UPDATE $sql_tabla SET ver='0'") or die(mysql_error()); //pone todos los banner a 0, para no mostrar
            
mysql_query("UPDATE $sql_tabla SET ver='1' WHERE id='$id'") or die(mysql_error()); //le pone 1 al que queremos mostrar al azar

        
break; //saltamos


        
case '30'//si los segundos coinciden, ejecuta code

            
$id rand(13); //busca un numero entre 1 y 3
            
mysql_query("UPDATE $sql_tabla SET ver='0'") or die(mysql_error()); //pone todos los banner a 0, para no mostrar
            
mysql_query("UPDATE $sql_tabla SET ver='1' WHERE id='$id'") or die(mysql_error()); //le pone 1 al que queremos mostrar al azar

        
break; //saltamos


        
case '50'//si los segundos coinciden, ejecuta code

            
$id rand(13); //busca un numero entre 1 y 3
            
mysql_query("UPDATE $sql_tabla SET ver='0'") or die(mysql_error()); //pone todos los banner a 0, para no mostrar
            
mysql_query("UPDATE $sql_tabla SET ver='1' WHERE id='$id'") or die(mysql_error()); //le pone 1 al que queremos mostrar al azar

        
break; //saltamos

}
        

    
$consulta_banner mysql_query("SELECT $selecttbl FROM $sql_tabla WHERE ver='1'") or die(mysql_error()); //buscamos banner

        
while($result_banner mysql_fetch_array($consulta_banner)) { //generamos banner
        
            
echo "<img src=".$result_banner['nombre']." height=75 width=200 border=0>"//mostramos banner

        
}

?>

        </body>

</html>
ale.-.- a ver que opinan no sean muy duros
http://217.125.50.214/ayuda2/banner_...rio_con_bd.php

se me olvido decirlo, la hice asi para que no consuma muchos recursos,,, no creo que pase mucho si alguna vez no coinciden los segundos cuando el user recarga, aun asi, es solo añadir mas casses...
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 04/10/2003 a las 02:20
  #8 (permalink)  
Antiguo 04/10/2003, 03:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
mm Los "case" y el mismo código que usas para ese Update . podrías hacerlo mas simple usando algo de matemáticas:

por ejemplo con el módulo de una división ..

Código PHP:
if (date("s") % 20) {
// tu update ...

si no me fallan las matemáticas .. cada 20 segundos ejecuta tu código (ya que sería el "segundo" múltiplo ...)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #9 (permalink)  
Antiguo 04/10/2003, 03:29
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
juas, juas, juas... mas matao, genial
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 04/10/2003 a las 03:36
  #10 (permalink)  
Antiguo 04/10/2003, 03:58
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 21 años, 6 meses
Puntos: 2
jejeje asi mola mas.... tienes toda la razon, de hecho, hace exactamente lo que el user pide... juas...

Código PHP:

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Maguma Studio Pro">
        <title>Max Banner</title>
    </head>

        <body bgcolor="#ffffff">

<?php
 
#######################################################################################
# DROP TABLE IF EXISTS `max_banner`;
# CREATE TABLE `max_banner` (
#   `id` int(11) NOT NULL auto_increment,
#   `nombre` varchar(100) NOT NULL default '',
#   `ver` int(1) NOT NULL default '0',
#   PRIMARY KEY  (`id`),
#   KEY `id` (`id`)
# ) TYPE=MyISAM;

# INSERT INTO `max_banner` (`id`, `nombre`, `ver`) VALUES("1", "imagen_01.gif", "0");
# INSERT INTO `max_banner` (`id`, `nombre`, `ver`) VALUES("2", "imagen_02.gif", "0");
# INSERT INTO `max_banner` (`id`, `nombre`, `ver`) VALUES("3", "imagen_03.gif", "1");
 #######################################################################################

/*CARGAMOS CONFIGURACION DEL SERVIDOR*/
$sql_host "localhost";    // Host, nombre del servidor o IP del servidor Mysql.
$sql_usuario "xxxx";      // Usuario de Mysql
$sql_pass "xxxx";            // contraseña de Mysql

/*CARGAMOS LA BASE DE DATOS*/
$sql_db "max_banner";     // Base de datos que se usará

/*CARGAMOS LAS TABLAS DE LA BASE DE DATOS*/
$sql_tabla "max_banner"// Nombre de la tabla que contendrá los datos de los usuarios

/*CONECTAMOS CON MYSQL*/
$db_connect mysql_connect($sql_host,$sql_usuario,$sql_pass);
mysql_select_db($sql_db);

/*CARGAMOS TODOS LOS REGISTROS DE LAS BASES DE DATOS*/
$selecttbl "id,nombre";  //Campos tabla


if (date("s") % 5) {// cada 5 segundos se ejecuta el if

    
$consulta_banner mysql_query("SELECT $selecttbl FROM $sql_tabla WHERE ver='1'") or die(mysql_error()); //buscamos banner

        
while($result_banner mysql_fetch_array($consulta_banner)) { //generamos banner

            
echo "<center><img src=".$result_banner['nombre']." height=75 width=200 border=0>"//mostramos banner

        
}


} else {

    
$id rand(13); //busca un numero entre 1 y 3
        
mysql_query("UPDATE $sql_tabla SET ver='0'") or die(mysql_error()); //pone todos los banner a 0, para no mostrar
        
mysql_query("UPDATE $sql_tabla SET ver='1' WHERE id='$id'") or die(mysql_error()); //le pone 1 al que queremos mostrar al azar


    
$consulta_banner mysql_query("SELECT $selecttbl FROM $sql_tabla WHERE ver='1'") or die(mysql_error()); //buscamos banner

        
while($result_banner mysql_fetch_array($consulta_banner)) { //generamos banner

            
echo "<center><img src=".$result_banner['nombre']." height=75 width=200 border=0>"//mostramos banner

        
}
}
?>

        </body>

</html>
__________________
3w.valenciadjs.com
3w.laislatv.com

Última edición por nuevo; 04/10/2003 a las 04:00
  #11 (permalink)  
Antiguo 06/02/2005, 15:37
 
Fecha de Ingreso: agosto-2003
Ubicación: santiago, chile
Mensajes: 303
Antigüedad: 21 años, 3 meses
Puntos: 0
ayuda

Cita:
Iniciado por nuevo
jejeje asi mola mas.... tienes toda la razon, de hecho, hace exactamente lo que el user pide... juas...

Código PHP:

<html>

    <head>
        <meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        <meta name="generator" content="Maguma Studio Pro">
        <title>Max Banner</title>
    </head>

        <body bgcolor="#ffffff">

<?php
 
#######################################################################################
# DROP TABLE IF EXISTS `max_banner`;
# CREATE TABLE `max_banner` (
#   `id` int(11) NOT NULL auto_increment,
#   `nombre` varchar(100) NOT NULL default '',
#   `ver` int(1) NOT NULL default '0',
#   PRIMARY KEY  (`id`),
#   KEY `id` (`id`)
# ) TYPE=MyISAM;

# INSERT INTO `max_banner` (`id`, `nombre`, `ver`) VALUES("1", "imagen_01.gif", "0");
# INSERT INTO `max_banner` (`id`, `nombre`, `ver`) VALUES("2", "imagen_02.gif", "0");
# INSERT INTO `max_banner` (`id`, `nombre`, `ver`) VALUES("3", "imagen_03.gif", "1");
 #######################################################################################

/*CARGAMOS CONFIGURACION DEL SERVIDOR*/
$sql_host "localhost";    // Host, nombre del servidor o IP del servidor Mysql.
$sql_usuario "xxxx";      // Usuario de Mysql
$sql_pass "xxxx";            // contraseña de Mysql

/*CARGAMOS LA BASE DE DATOS*/
$sql_db "max_banner";     // Base de datos que se usará

/*CARGAMOS LAS TABLAS DE LA BASE DE DATOS*/
$sql_tabla "max_banner"// Nombre de la tabla que contendrá los datos de los usuarios

/*CONECTAMOS CON MYSQL*/
$db_connect mysql_connect($sql_host,$sql_usuario,$sql_pass);
mysql_select_db($sql_db);

/*CARGAMOS TODOS LOS REGISTROS DE LAS BASES DE DATOS*/
$selecttbl "id,nombre";  //Campos tabla


if (date("s") % 5) {// cada 5 segundos se ejecuta el if

    
$consulta_banner mysql_query("SELECT $selecttbl FROM $sql_tabla WHERE ver='1'") or die(mysql_error()); //buscamos banner

        
while($result_banner mysql_fetch_array($consulta_banner)) { //generamos banner

            
echo "<center><img src=".$result_banner['nombre']." height=75 width=200 border=0>"//mostramos banner

        
}


} else {

    
$id rand(13); //busca un numero entre 1 y 3
        
mysql_query("UPDATE $sql_tabla SET ver='0'") or die(mysql_error()); //pone todos los banner a 0, para no mostrar
        
mysql_query("UPDATE $sql_tabla SET ver='1' WHERE id='$id'") or die(mysql_error()); //le pone 1 al que queremos mostrar al azar


    
$consulta_banner mysql_query("SELECT $selecttbl FROM $sql_tabla WHERE ver='1'") or die(mysql_error()); //buscamos banner

        
while($result_banner mysql_fetch_array($consulta_banner)) { //generamos banner

            
echo "<center><img src=".$result_banner['nombre']." height=75 width=200 border=0>"//mostramos banner

        
}
}
?>

        </body>

</html>
saludos...
estoy probando el codigo, tengo una pequeña duda, como lo puedo hacer para que cada vez que haga refresh me cambie? poniendolo en 1 seg? y otra cosa, para darle link a los banner como lo puedo hacer?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:34.