Foros del Web » Programando para Internet » PHP »

Problemas extraer id que exista en db

Estas en el tema de Problemas extraer id que exista en db en el foro de PHP en Foros del Web. necesito extraer una id aleatoria de la db que exista. Tengo una db con un campo id con autoincrement pero claro si se borra la ...
  #1 (permalink)  
Antiguo 16/12/2004, 18:29
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
Problemas extraer id que exista en db

necesito extraer una id aleatoria de la db que exista.

Tengo una db con un campo id con autoincrement pero claro si se borra la id 7 esta ya no se completará mas. Seguira insertando id por donde se quede.

Me explico,

quiero extraer un id aleatorio de una db, pero que este. El codigo que pongo es este

Código PHP:
case(2):


while(
$id != ""){///no se que se pone aqui pero no creo que sea eso
    
$select mysql_query("select * from user");
    
$id_random_1 mysql_num_rows($select);
    
$id_random rand(1$id_random_1);
    
$select mysql_query("select * from user where mid='$id_random'");
    
$row mysql_fetch_array($select);
    
$id $row["mid"];
    
$nombre $row["mnombre"];
    
$imagen $row["mimagen"];
    
$vida $row["mvida"];
    
$nivel $row["mnivel"];
    
$armadura $row["marmadura"];
    
$arma $row["marma"];
    }
break; 
No se si esta es la mejor manera de hacerlo o se hace de otra manera pero bueno.
No creo que influya el case, no?

Gracias maquinas!!!
  #2 (permalink)  
Antiguo 17/12/2004, 05:33
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ese campo ID autoincremental debes dejarlo como tal funciona ya. Es decir .. si borras un ID . .el siguiente ID propuesto será el último que se quedó +1 ..

Te comento esto por qué eso es la primera regla de "integridad referencial" de las Base de datos.

Imagina el caso:
TU me das un link que apunta a un ID concreto tipo: nose.php?id=1 .. a mi me gustó ese "contenido" y me guardé ese ID en mis "favoritos" .. despues, tu vas y borras ese ID .. a continuación creas un nuevo registro y le otorgas el ID=1 .. El "contenido" de ese registro no será el mismo .. así que si yo visito el "ID=1" ..ya no será lo que yo espero. En su defecto tu sistema me tiene que decir algo tipo "ID=1 ya no existe"...

Si tu quieres elegir un registro aletaorio de tu BD .. puedes usar la sisguiente sentencia SQL:

SELET * FROM tabla ORDER BY RAND() LIMIT 1

Con eso sobra .. el SQL es "muy potente" .. no requiere la mayoría de veces de intervención de PHP por médio .. Intenta buscar soluciones a problemas con la "obtención" de Datos de tus BD en lenguaje SQL .. veras que es muchooooooooo más óptimo que hacerlo en PHP. (la mayoría de casos).

Un saludo,
  #3 (permalink)  
Antiguo 17/12/2004, 06:12
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
gracias tio

Gracias por todo, voy a probar.
Me tendré que comprar un libro de SQL a ver que tal xq estoy muy verde en eso.

Dew
  #4 (permalink)  
Antiguo 17/12/2004, 08:06
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Podrías empezar leyendo los artículos de:

www.mysql-hispano.com

Son muyyyy interesantes; tienes sobre diseño de BD, SQL, normalización, y otros que te van a servir mucho.

Un saludo,
  #5 (permalink)  
Antiguo 27/12/2004, 11:45
Avatar de ostrasjo  
Fecha de Ingreso: diciembre-2004
Mensajes: 165
Antigüedad: 13 años
Puntos: 0
Ya mel posse als fovorits

Grasies per tot paisano!
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 12:04.