| |||
![]() Hola, he leído el post de rotacion de banners con sus links, y el problema que yo tengo es que no quiero especificar uno a uno todos los elementos del array, sino, crear una consulta con una condición determinada, y que los resultados obtenidos formen el array que quiero utilizar para rotar los banners aleatoriamente.¿Como creo el array? Ayuda por favor Última edición por marymary; 10/09/2004 a las 08:11 |
| |||
rotar con sql Hi Si utilizas una base de datos las librerias de php (sea cual sea la DB, simpre que este soportada por php) te devueleven lo que tu un array si tu lo quieres. Pero quiza a lo que te refieres es a esto: Código PHP: Suerte
__________________ :risa: RAPI91 :) |
| |||
Pos a lo bruto. Hola No me havia dado cuenta de que no creara la matriz antes. Asi que para no complicarse la vida lo haremos a lo bruto sin esa función. Código PHP: Asi deveria funcionarte.
__________________ :risa: RAPI91 :) |
| |||
Hola, he intentado adaptar el código que me das a lo que necesito, y no me llega a funcionar. El código que tengo es el siguiente... <html> <head> <title>banner</title> </head> <body> <center> <? $sql = "SELECT * FROM clientes, servicios WHERE servicios.id_servicio=2"; $con = mysql_connect($host, $user, $pass) or die ("No se puede conectar"); $result = mysql_query($sql, $con) or die ("no se puede ejecutar consulta"); while($row = mysql_fetch_array($result)) { $matriz[] = $row['id_cliente']; } srand((float) microtime() * 10000000); $cliente = array_rand($matriz, 1); $sqldo = mysql_query("SELECT * FROM clientes, servicios WHERE servicios.id_servicio=2 AND clientes.id_cliente='$cliente'"); $con = mysql_connect($host, $user, $pass) or die ("No se puede conectar"); $result = mysql_query($sqldo, $con) or die ("no se puede ejecutar consulta"); while($ban = mysql_fetch_assoc($sqldo)) { echo "<img src='banners/".$ban['id_cliente'].'.'.'gif'."' border=0>"; } mysql_close($con); ?> </center> </body> </html> |
| |||
Que es lo que no te funciona? No te recoje introduce los datos en la matriz o no te muestra la imagen. por cierto en este trozo tienes un error: Código PHP: Intentaste imprimir en pantalla algo para ver como ivan las cosas, yo suelo colocar algun print que otro en medio para ir comprovando valores una vez terminado el modulo los comentas o eliminas. PD: Deverias usar funciones, el codigo es mas facil de mantener y me legible.
__________________ :risa: RAPI91 :) Última edición por Rapi91; 13/09/2004 a las 13:07 |
| ||||
Lo que tienes que hacer es generar el array... el resto lo dejas igual que como estaba... En tu caso generas el array desde una consulta a la BD. Acá te pongo un ejemplo de lo que tienes que hacer Código PHP: ![]() |
| ||||
Eso como ejemplo... para que no resulte en un consumo de recursos tan grande como generar el arry en cada recarga traido de la BD del que sólo utilizarás un elemento, puedes generarlo una sóla vez y guardarlo en una variable de sesión... o utilizar la función RAND() de mysql directamente (mejor). Saludos ![]() |
| |||
Hola, así y me funciona: <html> <head> <title>banner</title> </head> <body> <center> <? $sql = "SELECT * FROM clientes, servicios WHERE servicios.id_servicio=2 ORDER BY RAND()"; $con = mysql_connect($host, $user, $pass) or die ("No se puede conectar"); $result = mysql_query($sql, $con) or die ("no se puede ejecutar consulta"); $num_results=mysql_num_rows($result); $ban=mysql_fetch_array($result); echo "<img src='banners/".$ban['id_cliente'].'.'.'gif'."' border=0>"; mysql_close($con); ?> </center> </body> </html> Muchas gracias a todos... |