me dice esto: array(2) { [0]=> string(1) "1" ["activo"]=> string(1) "1" }
el caso es que la base de datos tiene los siguientes campos:
id
nick
PASSWORD
nombre
email
activo
no tendría que salirme un array(6) en vez de un array(2)? :s
Saludos!
Edito:
Modifiqué el código como dijo GatorV (lo de poner los SELECT juntos)
Código PHP:
<?php
//Aquí la conexión a la base de datos
$n = $_GET['n'];
$p = $_GET['p'];
$sql_id = "SELECT id, activo FROM usuarios WHERE nick='$n' UNION SELECT id, activo FROM usuarios WHERE password='$p'";
$result_id = mysql_query($sql_id);
$valor_id = mysql_fetch_array($result_id);
echo $valor_id['id'];
echo $valor_id['activo'];
$id = $valor_id['id'];
if ($valor_id['activo'] == 0)
{
echo "este usuario aún no está activo";
$sql = "UPDATE usuarios SET activo = 1 WHERE id ='$id'";
$result = mysql_query($sql);
echo "La cuenta se ha activado correctamente";
}
else
{
echo "dfdEste usuario ya está activo";
}
mysql_close();
?>
(sigue sin ir xD)
con la modificación esta y poniendo el var_dump sale:
array(4) { [0]=> string(1) "2" ["id"]=> string(1) "2" [1]=> string(1) "0" ["activo"]=> string(1) "0" }
el caso es que ACTIVO no es un String, en la base de datos está puesto como un INT (activo int(1))
al igual que ID es un BIGINT (id bigint(7)) aunque igual php los pasa a string para poder mostrarlos xD
Mirad que cosa mas rara :s, con este fragmeto de codigo:
Código PHP:
var_dump($valor_id);
echo "<br>";
$id = $valor_id['id'];
if ($valor_id['activo'] == 0)
{
echo "este usuario aún no está activo";
$sql = "UPDATE usuarios SET activo = 1 WHERE id ='$id'";
$result = mysql_query($sql);
echo "La cuenta se ha activado correctamente";
}
else
{
echo "dfdEste usuario ya está activo";
}
var_dump($valor_id);
se supone que deberia imprimir en el primer var_dump en activo un 0 y en el segundo un 1
pues me muestra esto:
array(4) { [0]=> string(1) "2" ["id"]=> string(1) "2" [1]=> string(1) "1" ["activo"]=> string(1) "1" }
array(4) { [0]=> string(1) "2" ["id"]=> string(1) "2" [1]=> string(1) "1" ["activo"]=> string(1) "1" }
vamos que sale en los 2 ACTIVO=1 y antes de ejecutar el script yo cambio a 0 manualmente el valor de ACTIVO desde la BBDD :s