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";
?>