Foros del Web » Programando para Internet » PHP »

Error con mysql_fecth_array()

Estas en el tema de Error con mysql_fecth_array() en el foro de PHP en Foros del Web. Hola, Estoy haciendo ejercicios para ir dominado las consultas que me resultan complicadas por ahora, estoy haciendo un programa que modifique toda una columna. Se ...
  #1 (permalink)  
Antiguo 07/09/2011, 16:09
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Error con mysql_fecth_array()

Hola,

Estoy haciendo ejercicios para ir dominado las consultas que me resultan complicadas por ahora, estoy haciendo un programa que modifique toda una columna.

Se le suma al valor que tiene la columna la variable que le pasamos.

Bien me da fallo en mysql_fecht_array() me imprime en pantalla esto:

Código:
El usuario eduardbvguj ha sumado un total de 429

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\curso\ejercicios post\sumar.php on line 14
Se han sumado un total de: 11 a un total de: 1 Usuarios

No hace bien el loop y solo cambia al primer usuario de la tabla.

He examinado la consulta y los campos y creo que todo esta correcto incluso tengo un script parecido que muesta todos los campos que tiene la tabla y no me da fallo, pero en este caso si, y no veo el fallo por ningún lado ¿me podéis echar una mano?

Estructura de la base de datos:


Código:
--
-- Base de datos: `test`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `test`
--

CREATE TABLE IF NOT EXISTS `test` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `incl1` varchar(255) NOT NULL,
  `incl2` varchar(255) NOT NULL,
  `point` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;

--
-- Volcar la base de datos para la tabla `test`
--

INSERT INTO `test` (`id`, `incl1`, `incl2`, `point`) VALUES
(10, 'eduardbvguj', 'medina', 429),
(16, 'Juan pedro', 'medina', 341),
(18, 'eduardo', 'eduardo', 341);

Código php:

Código PHP:
<?php

/**
 * @author skirlappa
 * @copyright 2011
 */
//Conectamos con la base de datos
$connect=mysql_connect("localhost","","");
$selectDb=mysql_select_db("test",$connect);
//Creamos los puntos que se le va añadir a todos los usuarios
$point=11;
//Ejecutamos la consulta
$query=mysql_query("SELECT * FROM test");
while(
$row=mysql_fetch_array($query))
{
    
$sumar$row['point']+$point;
    echo 
"El usuario "$row['incl1']." ha sumado un total de ".$sumar."<br>";
    
$query=mysql_query("UPDATE test SET point='$sumar' WHERE id=".$row['0']."");
}
//Imprimimos en pantalla el valor que se ha añadido a todos los usuarios y el total de usuarios al que ha afectado.
$afecto=mysql_affected_rows();
echo 
"Se han sumado un total de: ".$point." a un total de: ".$afecto." Usuarios";

?>
  #2 (permalink)  
Antiguo 07/09/2011, 16:12
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error con mysql_fecth_array()

Según eso hay un error en la sentencia SQL, agrega esto a tu mysql_query para saber el error:

Código PHP:
Ver original
  1. $query=mysql_query("SELECT * FROM test") or die (mysql_error());
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #3 (permalink)  
Antiguo 07/09/2011, 16:25
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Error con mysql_fecth_array()

Si eso hice, lo que pasa que no lo puse en el código y no me muestra ningún error, me imprime en pantalla lo mismo, he ejecutado la sentencia en phpmysql y la realiza sin incidencia alguna...
  #4 (permalink)  
Antiguo 07/09/2011, 16:28
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error con mysql_fecth_array()

Prueba cambiando esta línea:

Código PHP:
Ver original
  1. $selectDb=mysql_select_db("test",$connect);

por esta

Código PHP:
Ver original
  1. $selectDb = mysql_select_db("test") or die (mysql_error());

la base de datos se llama test?
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #5 (permalink)  
Antiguo 07/09/2011, 16:34
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Error con mysql_fecth_array()

Si, la base de datos se llama test también, he cambiado la línea por la que me indicas, y sigue igual, no arroja ningún error e imprime lo mismo que al principio en pantalla.
  #6 (permalink)  
Antiguo 07/09/2011, 16:38
 
Fecha de Ingreso: septiembre-2009
Ubicación: Managua
Mensajes: 128
Antigüedad: 14 años, 7 meses
Puntos: 5
Respuesta: Error con mysql_fecth_array()

Revisa los permisos a tu tabla, podria ser ese tu problema de pronto :P

Saludos
  #7 (permalink)  
Antiguo 07/09/2011, 16:41
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: Error con mysql_fecth_array()

El problema es que estas sobrescribiendo el valor de la variable $query dentro del while. Al hacer un update no es necesario que almacenes en una variable el resultado (que es true o false).

Código PHP:
Ver original
  1. while($row=mysql_fetch_array($query))
  2. {
  3.     $sumar= $row['point']+$point;
  4.     echo "El usuario ". $row['incl1']." ha sumado un total de ".$sumar."<br>";
  5.     mysql_query("UPDATE test SET point='$sumar' WHERE id=".$row['0']."");
  6. }

Saludos
  #8 (permalink)  
Antiguo 07/09/2011, 16:42
Avatar de PIRRUMAN  
Fecha de Ingreso: febrero-2006
Ubicación: Monterrey, Nuevo León
Mensajes: 633
Antigüedad: 18 años, 2 meses
Puntos: 53
Respuesta: Error con mysql_fecth_array()

la conexion esta bien?

el usuario la contraseña?

existe la base de dats fisicamente y la tabla?
__________________
“Prefiero ser un tonto momentaneo que un eterno ignorante”
“¡El éxito es resultado de los aciertos,los aciertos resultado de la experiencia y la experiencia resultado de los errores!”
  #9 (permalink)  
Antiguo 07/09/2011, 16:44
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Error con mysql_fecth_array()

Cita:
Iniciado por quike88 Ver Mensaje
El problema es que estas sobrescribiendo el valor de la variable $query dentro del while. Al hacer un update no es necesario que almacenes en una variable el resultado (que es true o false).

Código PHP:
Ver original
  1. while($row=mysql_fetch_array($query))
  2. {
  3.     $sumar= $row['point']+$point;
  4.     echo "El usuario ". $row['incl1']." ha sumado un total de ".$sumar."<br>";
  5.     mysql_query("UPDATE test SET point='$sumar' WHERE id=".$row['0']."");
  6. }

Saludos

Ese era el problema, si señor, creo que he perdido hoy mucho pelo con esto voy ha dejarlo hasta mañana :P muchísimas gracias!!!!
  #10 (permalink)  
Antiguo 07/09/2011, 16:51
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error con mysql_fecth_array()

Colocando esto siempre te das cuenta de esos errores:

Código PHP:
Ver original 

pero no los tienes en cuenta.

Saludos
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #11 (permalink)  
Antiguo 07/09/2011, 16:53
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Error con mysql_fecth_array()

Cita:
Iniciado por andresdzphp Ver Mensaje
Colocando esto siempre te das cuenta de esos errores:

Código PHP:
Ver original 

pero no los tienes en cuenta.

Saludos

Tienes razón estoy ahora aprendiendo y lo puse en todas las ejecuciones menos en esa.... me estaba volviendo loco, muchas gracias por el consejo
  #12 (permalink)  
Antiguo 07/09/2011, 16:55
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Error con mysql_fecth_array()

Aunque lo acabo de probrar con el código mal y no me sale ningún mensaje de error, porque la ejecución esta bien lo que no lo está es la variable.
  #13 (permalink)  
Antiguo 07/09/2011, 17:08
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 12 años, 9 meses
Puntos: 793
Respuesta: Error con mysql_fecth_array()

Si en ese caso había que notar la variable $query, pero en otros casos es muy útil para saber errores rápidamente. El problema es que la primera vez que recorre el bucle hace la consulta normal. Pero ya en la segunda vuelva $query tiene el valor de true y lo que necesita la función mysql_fetch_array es un resultset

Código PHP:
Ver original
  1. $query = mysql_query("SELECT * FROM test");
  2.  
  3. //aqui query es de tipo resource.
  4.  
  5. while ($row = mysql_fetch_array($query)) { //segunda vuelta sale error porque es true $query
  6.  
  7. //primera vuelta sigue resource
  8.  
  9.     $query = mysql_query("UPDATE test SET point='$sumar' WHERE id=" . $row['0'] . "");
  10.  
  11. //aquí ya vale true query
  12.  
  13. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP
  #14 (permalink)  
Antiguo 08/09/2011, 01:27
 
Fecha de Ingreso: junio-2005
Mensajes: 107
Antigüedad: 18 años, 10 meses
Puntos: 0
Respuesta: Error con mysql_fecth_array()

Gracias por la explicación, poco a poco voy viendo esto de programar php, estoy empezando y cuando cometes un fallo de este tipo es una locura...

Etiquetas: mysql, sql, tabla, variables, usuarios
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 04:27.