Foros del Web » Programando para Internet » PHP »

Moverse entre registros de MySQL

Estas en el tema de Moverse entre registros de MySQL en el foro de PHP en Foros del Web. Hola saludos, Tengo un pequeño problema con las sentencias que hacen referencia a mysql. Las de "mysql_fetch_row() ...." Querria conseguir tener todo los registros en ...
  #1 (permalink)  
Antiguo 19/04/2006, 03:44
Avatar de unaiu  
Fecha de Ingreso: abril-2006
Mensajes: 139
Antigüedad: 11 años, 7 meses
Puntos: 0
Moverse entre registros de MySQL

Hola saludos,

Tengo un pequeño problema con las sentencias que hacen referencia a mysql.
Las de "mysql_fetch_row() ...."

Querria conseguir tener todo los registros en una variable, pero no ecuentro ninguna sentencia("funcion") que me permita coger toda la tabla como si fuese una recordset.

Asi despues con un indice podria moverme entre los registros, hacia delante y hacia atras.

Gracias por "escucharme" un abrazo.
  #2 (permalink)  
Antiguo 19/04/2006, 04:02
 
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
hola, no soy ningun hacha con php y mysql pero bueno, yo lo meteria todo en una matriz(array) bidimensional, es un tanto petardo, pero tienes exactamente lo que kieres, los registros en una variable.

algo asi, suponiendo que tus registros tengan 3 campos por linea:

---------------------------------------------------------------
//hacemos consulta e inicializamos contador
$rs=mysql_query("tu tabla","tu consulta);
$contador;

//ahora nos entrara una vez por cada linea que devuelva tu consulta.
while($trozo=mysql_fetch_array($rs))
{
$matriz[$contador][0]=$trozo[0];//el nombre del campo te vale igual k el indice
$matriz[$contador][1]=$trozo[1];
$matriz[$contador][2]=$trozo[2];

//incrementamos contador.
$contador++;
}
------------------------------------------------------------------
de este modo en $matriz[][] teine todo lo devuelto por la consulta y navengando con el primer indice tienes todos los datos ordenados.

se que no me suelo explicar bien, asi que si no me entiendes dilo y me esfuerzo mas, o espera a que gente con mas experiencia te ayude.

espero k te sirva, suerte y hasta otra.
  #3 (permalink)  
Antiguo 19/04/2006, 05:08
Avatar de unaiu  
Fecha de Ingreso: abril-2006
Mensajes: 139
Antigüedad: 11 años, 7 meses
Puntos: 0
while($trozo=mysql_fetch_array($result))

Hola amigo,
Gracias por contestar a la duda. He intentado en la manera que me dices tu, y la verdad que no lo entiendo mu bien. Entiendo lo que quieres hacer , pero no entiendo lo de:

while($trozo=mysql_fetch_array($result))

Mientras q $trozo sea igual a la sentencia??? Eso no lo entiendo mu bien , de todas maneras muxas gracias por ayudarme.

Por favor si sabes algo mas contestame.

Gracias , Un saludo
  #4 (permalink)  
Antiguo 19/04/2006, 05:14
Avatar de unaiu  
Fecha de Ingreso: abril-2006
Mensajes: 139
Antigüedad: 11 años, 7 meses
Puntos: 0
Tambien me sale un error , en el que me dice que se esperaba un objeto.

Cada vez que no me va me aparece ese error.

Gracias otra vez Viss, se agradece la ayuda y el interes

Un abrazo
  #5 (permalink)  
Antiguo 19/04/2006, 05:22
 
Fecha de Ingreso: abril-2006
Mensajes: 14
Antigüedad: 11 años, 7 meses
Puntos: 0
no, no es "mientras $trozo sea igual a ...",

es un igual simple, una asignacion.

osea.
"mientras puedas meter en $trozo lo que hay en..."

como mysql_fetch_array, por decirlo de lagun modo, te lee el primer registro y la segunda vez k lo ejecutas lee otro, y la tercera vez otro...

de tal forma que mientras haya un registro en $result seguira entrando en el while y cuanod no pueda hacer ese comando(pork ya no kedan mas registros) saldra.

como te los lee registro por registro luego tu puedes meterlos en un array linea por linea (esto igual te lia)

para explicarlo,$trozo es un array de una dimension (vamos los de toda la vida) con tantos campos como campos clumans tenga tu tabla(o columnas devuelva tu sentencia Sql).

se que me sigo explicando mal (quiza peor) pero espero ser de ayuda.

si necesitais ayuda urgente, estoy hasta las 2 ene l msn ([email protected])

copia y pega la liena de error tal cual sino no podre hacer mucho.
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 20:24.