Autor Tema: [TUTORIAL] Obtener datos de la base de datos aleatoriamente  (Leído 1171 veces)

Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
[TUTORIAL] Obtener datos de la base de datos aleatoriamente
« en: 16 de Julio de 2007, 15:10:18 pm »
Buenas,

Pues aquí os digo (es sencillo pero hay que saberlo utilizar), sacar información aleatoriamente, existiendo la información en la base de datos.

1er Script: Sistema sencillo (Con bugs), lo que hace mucha gente:
<?php 
@include("archivo_de_conxion.php");
$tabla "prueba"// Nombre de la tabla
$q mysql_query("SELECT * FROM {$tabla}");
$count mysql_num_rows($q);
$id rand(0,$count);
$con mysql_query("SELECT * FROM {$tabla} WHERE id=&#39;{$id}&#39; LIMIT 1");
$row mysql_fetch_array($con);
print 
"<b>{$row[id]}.</b> {$row[nombre]}";
?>


BUG: Cuando no exista una id, porque la hayas borrado, o no exista por cualquier motivo, no saldrá la información.

2o Script: Sistema más líneas pero, más eficaz:
<?php 
@include("archivo_de_conxion.php");
$tabla "prueba"// Nombre de la tabla
$q mysql_query("SELECT * FROM {$tabla}");
$count mysql_num_rows($q);
$id rand(0,$count);
$con mysql_query("SELECT * FROM {$tabla} WHERE id=&#39;{$id}&#39; LIMIT 1");
$num mysql_num_rows($con);
if(
$num != 0) {
$row mysql_fetch_array($con);
print 
"<b>{$row[id]}.</b> {$row[nombre]}";
} else {
header("location: {$_SERVER["PHP_SELF"]}");
}
?>

BUG: Al haber puesto un header, NUNCA puede haberse imprimido algo en pantalla antes del header, tendría que ser lo primero al ponerlo en la web.

3er Script: ¡¡Menos líneas y el más eficaz!!
<?php 
@include("archivo_de_conxion.php");
$tabla "prueba"// Nombre de la tabla
$con mysql_query("SELECT * FROM {$tabla} ORDER BY RAND() LIMIT 1");
$row mysql_fetch_array($con);
print 
"<b>{$row[id]}.</b> {$row[nombre]}";

?>

BUG: Ninguno.

Espero que os sirva para algo, ya que a mí sí :)
Saludos :)
Sin Firma me haces una? :P

Comunidad PHPeros

[TUTORIAL] Obtener datos de la base de datos aleatoriamente
« en: 16 de Julio de 2007, 15:10:18 pm »

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: [TUTORIAL] Obtener datos de la base de datos aleatoriamente
« Respuesta #1 en: 16 de Julio de 2007, 15:59:58 pm »
Hombre... esta bien para los que empiezan...
voy a soltarte un Karma pero solo porque ablamos en PAP xDDDDDD
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re: [TUTORIAL] Obtener datos de la base de datos aleatoriamente
« Respuesta #2 en: 16 de Julio de 2007, 16:17:43 pm »
Buenas,

Hombre... esta bien para los que empiezan...
voy a soltarte un Karma pero solo porque ablamos en PAP xDDDDDD

jajajajaja...

Y para los que no empiezan, también porque hay gente que no sabe como hacer un orden aleatorio, de este tipo.

Saludos :)
Sin Firma me haces una? :P

Desconectado Blackenger

  • PHPer@ Fijo
  • ***
  • Mensajes: 114
  • Karma: 5
    • Ver Perfil
Re: [TUTORIAL] Obtener datos de la base de datos aleatoriamente
« Respuesta #3 en: 17 de Julio de 2007, 06:36:10 am »
FeDe, me pregunto porque agregaste esa variable en vez de poner el nombre de la tabla directamente en el SELECT.

Quedaria así:
<?php
@include("archivo_de_conxion.php");
$con mysql_query("SELECT * FROM `prueba` ORDER BY RAND() LIMIT 1");
$row mysql_fetch_array($con);
print 
"<b>{$row[id]}.</b> {$row[nombre]}";
?>


Una linea menos no?

Saludos.

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: [TUTORIAL] Obtener datos de la base de datos aleatoriamente
« Respuesta #4 en: 17 de Julio de 2007, 10:40:18 am »
tambien xD
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: [TUTORIAL] Obtener datos de la base de datos aleatoriamente
« Respuesta #5 en: 17 de Julio de 2007, 17:03:18 pm »
Así está aún mas comprimido...
Una linea menos, ¿no?

<?php
@include("archivo_de_conxion.php");
$row mysql_fetch_array(mysql_query("SELECT * FROM `prueba` ORDER BY RAND() LIMIT 1"));
print 
"<b>{$row[id]}.</b> {$row[nombre]}";
?>
Por favor, leete las Normas


Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: [TUTORIAL] Obtener datos de la base de datos aleatoriamente
« Respuesta #6 en: 17 de Julio de 2007, 18:30:50 pm »
jajajjaa ya no se puede comprimir más... xD
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado FeDe

  • PHPero Avanzado
  • ****
  • Mensajes: 448
  • Karma: 35
  • Sexo: Masculino
  • BaDyDj -> ¡Mi Stylo, Mi ViDa!
    • Ver Perfil
Re: [TUTORIAL] Obtener datos de la base de datos aleatoriamente
« Respuesta #7 en: 18 de Julio de 2007, 15:12:51 pm »
Buenas,

Lo puse así para los principiantes, está más estructurado y se ve más claro, pero sí, también funciona como decís ;)

Saludos.
Sin Firma me haces una? :P