Foros del Web » Programando para Internet » PHP »

Problema con mysql_fetch_array()

Estas en el tema de Problema con mysql_fetch_array() en el foro de PHP en Foros del Web. Hola a todos, Estoy haciendo una de las cientos de consultas que tengo en mi aplicación, pero no se porque me falla aquí. Lo que ...
  #1 (permalink)  
Antiguo 31/03/2007, 08:57
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Problema con mysql_fetch_array()

Hola a todos,

Estoy haciendo una de las cientos de consultas que tengo en mi aplicación, pero no se porque me falla aquí.

Lo que hago es esto:

Código PHP:

//Conecto con la BD
...

$result mysql_query ("SELECT * FROM asignaturas
                ORDER BY nombre_asignatura ASC"
) or die((mysql_error());

while (
$rows mysql_fetch_array($result)){
...

El problema, es que en el while me salta este error:

Cita:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in ...
Esa misma consulta la pongo en el editor de sql de mi bd y me funciona correctamente. De hecho, en el código pongo que me escriba el número de registros con: echo mysql_num_rows($result); y me devuelve '33', que son los registros que hay...
  #2 (permalink)  
Antiguo 31/03/2007, 09:41
 
Fecha de Ingreso: febrero-2007
Mensajes: 244
Antigüedad: 17 años, 2 meses
Puntos: 0
Re: Problema con mysql_fetch_array()

Problema solucionado, quité todos los echo que tenía y genial !
  #3 (permalink)  
Antiguo 11/04/2007, 11:50
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Problema con mysql_fetch_array()

Yo no estoy muy entendido de como funciona el MYSQL_FETCH_ARRAY, ahora estoy leyendo algo de documentacion, pero como puedo manejar el resultado de este comando en un array???

Por ejemplo tu haces:
Código PHP:
$rows mysql_fetch_array($result); 
En $rows tenemos todos los valores de la consulta??? es ya un array??

Si fueran 3 resultados tendriamos esto??:

En $rows[0] tenemos el valor "UNO"
En $rows[1] tenemos el valor "DOS"
En $rows[2] tenemos el valor "TRES"
  #4 (permalink)  
Antiguo 11/04/2007, 11:55
Avatar de el cirujano  
Fecha de Ingreso: mayo-2003
Ubicación: Frente al PC
Mensajes: 609
Antigüedad: 20 años, 11 meses
Puntos: 3
Re: Problema con mysql_fetch_array()

Código PHP:
echo $rows[nombredelcampo]; 
__________________
CSS2 + AJAX + PHP + MySQL, una mezcla sin competencia!!!!!!
  #5 (permalink)  
Antiguo 11/04/2007, 15:41
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Problema con mysql_fetch_array()

Cita:
Iniciado por makeitslow Ver Mensaje
En $rows tenemos todos los valores de la consulta??? es ya un array??
la respuesta a tus dos preguntas es "SI", el mysql_fetch_array() devuelve un arreglo con los registros obtenidos en la consulta y los puedes accesar por medio del numero o nombre, por ejemplo:

suponiendo que tienes 3 valores como dices, puedes obtener los valores así:
$row[0]=valor1
$row[1]=valor2
$row[2]=valor3

o lo puedes hacer así
$row['nombreCampo1']=valor1
$row['nombreCampo2']=valor2
$row['nombreCampo3']=valor3

de las dos formas te traerá los valores, a diferencia de mysql_fetch_row() que te lo devuelve unicamente en la forma de numero:
$row[0]=valor1
$row[1]=valor2
$row[2]=valor3

y el mysql_fetch_assoc() que lo hace en la forma de texto:
$row['nombreCampo1']=valor1
$row['nombreCampo2']=valor2
$row['nombreCampo3']=valor3

la diferencia radica en que tanto mysql_fetch_row() como en mysql_fetch_assoc() son mas rapidos que mysql_fetch_array().

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #6 (permalink)  
Antiguo 11/04/2007, 20:08
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Problema con mysql_fetch_array()

Gracias Cirujano y Eits por sus respuestas, estaba pensando usar el ASSOC para resolver mi problema, por que supuestamente tengo el resultado de mi consulta obtenida por el MYSQL_FETCH_ARRAY en $resultado, pero cuando se lo mando a un archivo PHP, me dice que esta vacio.

O sea quiero hacer esto:

$rows = mysql_fetch_array($result);

y llamar a un PHP con esa variable:

ARCHIVO.PHP?datos=<?php echo $rows ?>;

Anteriormente con arrays definidos me funciona, pero con uno obtenido por el MYSQL_FETCH_ARRAY no me funciona.

O es que tengo que copiar el valor del resultado a otro array??
  #7 (permalink)  
Antiguo 12/04/2007, 02:40
Avatar de Shevkorn  
Fecha de Ingreso: enero-2005
Ubicación: Trujillo
Mensajes: 34
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Problema con mysql_fetch_array()

Aqui estaba tu error...
..............or die((mysql_error()); -->Cuenta los parentesis...
__________________
Taek said: ¿Aùn los pecadores podremos llegar al cielo?
  #8 (permalink)  
Antiguo 12/04/2007, 09:17
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Problema con mysql_fetch_array()

Cita:
Iniciado por makeitslow Ver Mensaje
Gracias Cirujano y Eits por sus respuestas, estaba pensando usar el ASSOC para resolver mi problema, por que supuestamente tengo el resultado de mi consulta obtenida por el MYSQL_FETCH_ARRAY en $resultado, pero cuando se lo mando a un archivo PHP, me dice que esta vacio.

O sea quiero hacer esto:

$rows = mysql_fetch_array($result);

y llamar a un PHP con esa variable:

ARCHIVO.PHP?datos=<?php echo $rows ?>;

Anteriormente con arrays definidos me funciona, pero con uno obtenido por el MYSQL_FETCH_ARRAY no me funciona.

O es que tengo que copiar el valor del resultado a otro array??
no, recuerda que al hacer esto $rows = mysql_fetch_array($result); la variable $rows ya es un arreglo(claro, dependiendo del resultado de la consulta), y como arreglo puedes manipularlo igual que los demas.
creo que esto necesitas

ARCHIVO.PHP?datos=<?php echo $rows[0] ?>; -->recuerda los arreglos empiezan con el índice cero.

o puedes hacer esto

ARCHIVO.PHP?datos=<?php echo $rows['nombreDelCampo'] ?>;

de cualquiera de las dos formas es correcta, siempre y cuando utilices el mysql_fetch_array.

saludos y suerte.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #9 (permalink)  
Antiguo 12/04/2007, 22:41
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Problema con mysql_fetch_array()

Si utilizo:
ARCHIVO.PHP?datos=<?php echo $rows[0] ?>;
No estoy mandando un solo dato???

Si utilizo el nombre del campo:
ARCHIVO.PHP?datos=<?php echo $rows['nombreDelCampo'] ?>;
Cuantos datos estoy utilizando??

Yo suponia que $rows tiene todo el resultado de mi consulta, si el resultado son 10 datos, pues es un arreglo con 10 datos.
  #10 (permalink)  
Antiguo 13/04/2007, 08:30
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Problema con mysql_fetch_array()

ah!!, ya te entendí.

es cierto, $rows tiene todos los valores, pero no puedes pasar arreglos por get y por post no estoy seguro pero parece ser que no.

pero todavia hay algo que no entiendo, para que deseas pasar todas esos valores de la consulta?? que pretendes hacer??

la solucion que puedo darte por ahora es que en la hoja nueva realices la misma consulta que te devuelve esos valores.

saludos
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #11 (permalink)  
Antiguo 13/04/2007, 10:19
 
Fecha de Ingreso: enero-2007
Ubicación: Cochabamba - Bolivia
Mensajes: 346
Antigüedad: 17 años, 3 meses
Puntos: 2
Re: Problema con mysql_fetch_array()

Ya lo solucione... Tenia un problema de variables.. lo que queria hacer, era que un archivo PHP mandar un INPUT HIDDEN para con el hacer nuevamente mi consulta en el siguiente archivo PHP, y asi con el resultado de mi consulta crear un array para mandarselo a otro PHP para crear una estadistica grafica.

En mi primer PHP tenia un FORM donde mandaba mi INPUT HIDDEN:

Código PHP:
<form name="form1" method="post" action="verestadisticapersonal2.php">
<input name="promedio2" type="hidden" value="<?php echo $_POST["promedio"];?>">
Todos los POST en esta pagina PHP venian de unos INPUTS de una anterior, asi que no habia ningun problema el momento de leerlos.

En VERESTADISTICAS2.PHP con el valor de mi INPUT HIDDEN volvia a hacer la misma consulta pero usando ahora $_POST["promedio2"] que es mi INPUT HIDDEN.

Y para poder usar el valor en un siguiente PHP mas, solo tenia que copiar el resultado del MYSQL_FETCH_ARRAY a un array simple, puesto que descubri que el MYSQL_FETCH_ARRAY te devuelvo un solo valor nada mas.

Entonces copie el array del MYSQL_FETCH_ARRAY a un array manejable usando el campo del array del MYSQL_FETCH_ARRAY y asi tener un array completo y poder mandarlo y usarlo como quiera:

Código PHP:
$datosTabla1 = array();
$datosTabla2 = array();
    
for(
$i=0;$i<$UNNUMERO;$i++)
{
$reg1=MYSQL_FETCH_ARRAY$resultado1 );
$datosTabla2[$i] = $reg1['nombre_empresa'];
}
        
for(
$i=0;$i<$OTRONUMERO;$i++)
{
$reg2=MYSQL_FETCH_ARRAY$resultado2 );
$datosTabla1[$i] = $reg2['numero_personas'];

Teniendo estoy arrays, ya podia mandarlo como parametro a mi archivo PHP de estadistica asi:

Código PHP:
<p><img src="grafico_tarta.php?data=<?php echo $datosTabla1;?>&nombres=<?php echo $datosTabla2;?>" border="1"> 
</p>
Muchas gracias por su ayuda y orientacion que me sirvio de 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.
Tema Cerrado

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 18:16.