Foros del Web » Programando para Internet » PHP »

Enlace aleatorio de la base de datos

Estas en el tema de Enlace aleatorio de la base de datos en el foro de PHP en Foros del Web. Hola. Os voy a plantear una duda... espero que me ayudeis. tengo una web en la que los usuarios introducen enlaces web que se guardan ...
  #1 (permalink)  
Antiguo 01/03/2008, 15:52
 
Fecha de Ingreso: febrero-2008
Mensajes: 92
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta Enlace aleatorio de la base de datos

Hola.
Os voy a plantear una duda... espero que me ayudeis.
tengo una web en la que los usuarios introducen enlaces web que se guardan en la base de datos y necesito un script que me saque aleatoriamente un enlace de esta bd.
Tengo uno muy bueno.. que al enlazar con el archivo php automaticamente abre una web, pero aveces da error y encima me abre la carpeta del servidor donde se encuentra el archivo y eso es un peligro ya que permite ver datos importantes.
Luego tengo otro que es 100% fiable y nunca me ha dado error... pero los enlaces hay que introducirlos manualmente y en un archivo .txt

Mi gran pregunta: alguno tiene un script en forma de formulario que me permita almacenar datos de los visitantes (como nombre, apellidos, email...etc) y otro que me permita abrir un enlace aleatorio (solo enlace.. no otra cosa...)

Aqui os dejo el script que tengo:
http://ifile.it/jdcoitg
tiene 3 archivos....
-configuration.php
-index.php
-urlz
Esta bien pero lo de antes... guarda los enlaces en urlz y yo quiero que saque los enlaces de mysql no de urlz...


Por favor... ayudadme.. Gracias.

Última edición por danielsdem77; 01/03/2008 a las 16:04
  #2 (permalink)  
Antiguo 01/03/2008, 15:56
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Enlace aleatorio de la base de datos

Puedes facilmente sacar un enlace aleatorio sin problemas de tu base si usas una consulta similar:
Código:
SELECT * FROM `tutabla` ORDER BY RAND() LIMIT 1
Saludos.
  #3 (permalink)  
Antiguo 01/03/2008, 16:19
 
Fecha de Ingreso: febrero-2008
Mensajes: 92
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Enlace aleatorio de la base de datos

Cita:
Iniciado por GatorV Ver Mensaje
Puedes facilmente sacar un enlace aleatorio sin problemas de tu base si usas una consulta similar:
Código:
SELECT * FROM `tutabla` ORDER BY RAND() LIMIT 1
Saludos.
gracias por contestar... pero no se donde colocarla.. y en que archivo...


ademas.. dentro de la tabla tengo varios "apartados".. estan colocados los nombres, apellidos... ciudad, pais, enlace, etc... como seleccionar solamente el enlace para que me lo abra en una ventana?

me he vuelto loco buscando por la red... he probado todos los scripts que hay por ahi... los urlrotators...random links y todo eso.. ninguno hace lo que yo quiero ..
  #4 (permalink)  
Antiguo 01/03/2008, 16:29
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Enlace aleatorio de la base de datos

La consulta debe de ir en el archivo donde estas mostrando tu script aleatorio, y si quieres solo seleccionar un campo debes de cambiar el asterisco *, por el nombre del campo donde este guardado tu enlace.

Despues de seleccionarlo, lo puedes imprimir en cualquier parte de tu pagina donde hayas hecho la consulta SQL.

Saludos.
  #5 (permalink)  
Antiguo 01/03/2008, 17:26
 
Fecha de Ingreso: febrero-2008
Mensajes: 92
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Enlace aleatorio de la base de datos

vale.... ya consegui hacerlo.. aqui tengo el script:

<a href="
<?php
$host = "localhost";
$username = "root";
$password = "password";
$database = "database";
mysql_connect($host,$username,$password);
@mysql_select_db($database) or die( "Fallo al conectar con la base de datos. Intente mas tarde.");
$sql = "SELECT * FROM sutabla";
if ($result = mysql_query($sql)) {
$randval = rand(0, mysql_num_rows($result) - 1);
$link = mysql_result($result, $randval, "aqui va la columna donde salen los enlaces");
mysql_close();
echo $link;
}?>
">HAGA CLIC</a>


he puesto en negrita lo teneis que cambiar/personalizar para que funcione.

y en pantalla sale "HAGA CLIC" y al hacer clic sale un enlace aleatorio de la base de datos.

Pero como hacer que no salga en pantalla? que directamente abra el enlace en el navegador?
  #6 (permalink)  
Antiguo 01/03/2008, 17:40
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Enlace aleatorio de la base de datos

Le ahorrarás recursos a tu servidor si lo haces como GatorV te dijo más arriba, usando RAND():

Código PHP:
<a href="
<?php 
$host 
"localhost";
$username "root";
$password "password";
$database "database";
mysql_connect($host,$username,$password);
@
mysql_select_db($database) or die( "Fallo al conectar con la base de datos. Intente mas tarde."); 
$sql "SELECT * FROM sutabla ORDER BY RAND() LIMIT 0,1"
if (
$result mysql_query($sql)) {
    
$link mysql_result($result0"aqui va la columna donde salen los enlaces");
    
mysql_close();
    echo 
$link;
}
?>
">HAGA CLIC</a>
De esta manera tu consulta sólo devolverá una fila que el servidor MySQL ha seleccionado aleatoriamente. Así como lo estás haciendo, tu consulta está devolviendo todas las filas existentes en tu tabla, osea... más trabajo

Un saludo,
  #7 (permalink)  
Antiguo 01/03/2008, 17:59
 
Fecha de Ingreso: febrero-2008
Mensajes: 92
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Enlace aleatorio de la base de datos

muy bueno... gracias.. realmente funciona.

pero aun estoy con lo de que me salga directamente en el navegador, sin tener que hacer clic.
  #8 (permalink)  
Antiguo 01/03/2008, 18:38
okram
Invitado
 
Mensajes: n/a
Puntos:
Re: Enlace aleatorio de la base de datos

Código PHP:
if ($result mysql_query($sql)) {
    
$link mysql_result($result0"aqui va la columna donde salen los enlaces");
    
mysql_close();
    
header("Location: $link");

Pero debes tener en cuenta que header() envia cabeceras, en este caso de redireccion, al navegador, por lo que previamente no debe haber ninguna salida hacia el navegador

Un saludo,
  #9 (permalink)  
Antiguo 01/03/2008, 19:18
 
Fecha de Ingreso: febrero-2008
Mensajes: 92
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Enlace aleatorio de la base de datos

Cita:
Iniciado por okram Ver Mensaje
Código PHP:
if ($result mysql_query($sql)) {
    
$link mysql_result($result0"aqui va la columna donde salen los enlaces");
    
mysql_close();
    
header("Location: $link");

Pero debes tener en cuenta que header() envia cabeceras, en este caso de redireccion, al navegador, por lo que previamente no debe haber ninguna salida hacia el navegador

Un saludo,


FUNCIONAAAAA!!!!!! eres mi idolo jajajajajajaj
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:03.