Comunidad de diseño web y desarrollo en internet online

¿Es ésto correcto?

Citar            
MensajeEscrito el 07 Feb 2009 12:55 pm
Hola, estoy haciendo un script, para dependiendo de los resultados de una variable mandada desde flash, me suba a la BD, un determinado valor, el problema es que hasta dentro de unos dias no puedo probarlo en el servidor, y entonces me gustaría q le echaráis un vistazo para ver si es así cómo lo estoy haciendo, o es de otra forma, este es el code:

Código PHP :

<?php 
include("../includes/config.php");
include("../includes/funciones.php");
$cnx=conectar();

$edad=$_POST["edad"];
$sexo=$_POST["sexo"];
$actividad_fisica=$_POST["actividad"];
$calorias="";

if($sexo=='masculino' && $edad=='2' && $actividad_fisica=='sendentaria'){
   $sql = "INSERT INTO usuarios (calorias) VALUES (1000)";
   mysql_query($sql,$cnx);
   }
?>

Lo que quiero hacer es recoger los datos del formulario en flash, y dependiendo de esos datos, a la variable calorias, q está en la tabla usuarios de la BD, ponerle un determinado valor numerico.

¿Es correcto como lo estoy haciendo?

Mil gracias por vuestro tiempo.

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Feb 2009 05:46 am
No creo que la tabla usuarios solo tenga el campo caloria, en caso de que aserte en mi suposición debes hacer un update y no un insert.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 08 Feb 2009 08:44 am
La tabla usuarios tiene muchos campos, uno de ellos es calorias, q está vacio, ¿debo poner todos los campos sin ningún valor, y luego el campo calorias con dicho valor? ¿es necesario ponerlos todos? uf... y... entonces, si calorias está vacio, debo hacer un insert?

Gracias por contestar, espero tu respuesta.

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Feb 2009 04:24 pm
He cambiado la tabla y solo le he puesto dos campos, el id y calorias, y lo he intentado con insert y update, pero no funciona ninguno (he hecho la prueba ya) .... os pongo la sentencia del mysql con el bucle, a ver dónde estoy fallando....

Código PHP :

if($sexo=='Masculino' && $edad=='2' && $actividad_fisica=='Sendentaria'){
   $sql = mysql_query("INSERT INTO usuarios (id,calorias) VALUES (1,1000)",$cnx);
   }


Por favor, alguien podría decirme en qué estoy fallando? ¿es que necesito crear una variable en el mismo php de calorias tb? no le puedo asignar un valor directamente? :S

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 08 Feb 2009 10:39 pm
Me imagino id es una clave primaria y por eso te da error, además no dije que borraras los otros campos, solo que hicieras un UPDATE. En verdad te recomiendo leer un poco sobre base de datos.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 09 Feb 2009 03:32 pm
A ver, no he borrado nada, simplemente he creado otra trabla simple, para hacer las pruebas q necesite y cuándo lo haga correctamente, pues ya ponerme con la tabla correcta.

Sobre BD, estoy estudiando un curso actualmente, y ya he creado varias cositas, como por ejemplo:

Código PHP :

$insertar=mysql_query("INSERT INTO usuarios (personajes,password,nombre,apellidos) VALUES (1,'$password','$nombre','$apellidos')",$cnx);

Y no me da problema alguno, pero nunca he subido un dato "manualmente" sin recoger el valor de una variable, en este caso yo quiero q cuándo se cumpla la condición arriba escrita, el valor de calorias (en el campo calorias) se escriba 1000. Simplemente eso.... es lo único q preguntaba, pero bueno.... esperaré entonces a acabar el curso para poder saber eso...

Gracias.

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 09 Feb 2009 03:59 pm
Esteeee... Hola Hapki, estoy un poco perdido en lo que quieres hacer, pero lo que te comentó maikel de hacer un UPDATE en vez de un INSERT es totalmente cierto...

Entendí tu problema así: al registrar un usuario en tu tabla de usuarios (valga la redundancia), insertas X información menos las calorias, y luego mediante un form mandas el sexo, la edad, y la actividad de determinado usuario para a partir de eso calcular la cantidad de calorias que debe consumir dicho usuario. Si es así como entendí, tienes que hacer es un UPDATE de esta forma:

Código MySQL :

UPDATE usuarios SET calorias = 1000 WHERE id_usuario = usuario_al_que_le_calculaste_las_calorias
Nota: en id_usuario pones la clave primaria de la tabla usuarios... Saludos...

Por KB-27

Claber

301 de clabLevel



 

My very secret HQ

firefox
Citar            
MensajeEscrito el 12 Feb 2009 10:55 am
Jo...que no me sale!! :(

A ver, he hecho lo que me deciis, tengo puesto ésto exactamente (lo he resumido todo al máximo para q sea más fácil de ver el error)

Código PHP :

<?php 
include("../includes/config.php");
include("../includes/funciones.php");
$cnx=conectar();

$edad=$_POST["edad"];
$sexo=$_POST["sexo"];
$actividad_fisica=$_POST["actividad"];

if($edad==NULL|$sexo==NULL|$actividad_fisica==NULL|$mision==NULL|$personaje==NULL) {
   echo "&estado=Por favor, rellene todos los campos obligatorios&";
   }else{
      
if($sexo=='masculino' && $edad=='2' && $actividad_fisica=='sendentaria'){
   $sql = mysql_query("UPDATE prueba SET calorias = 1000 WHERE id = 1",$cnx);
   echo "&estado=Hecho&";
   }
}
  
?>


Pero no hay manera... el segundo echo, el q devuelve el texto "Hecho" nunca sale, siempre sale el primer echo (aún estando rellenado todos los campos, pero imagino q es pq el segundo echo hay algún problema)

Por favor, llevo ya tiempo dando vueltas, y no loconsigo, no sé que pasa....

Por Hapki

Claber

268 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 Feb 2009 02:37 pm
Según yo:

1.- Revisa que tu BD genere "NULL" en los campos vaciós por default, por ahí escuche que no es lo mismo un campo vacío que un campo en "NULL", phpmyadmin tiene una opción para poner en NULL los campos por default.

Por gente21

79 de clabLevel



 

chrome
Citar            
MensajeEscrito el 12 Feb 2009 03:47 pm
Pues haciendo eso, tampoco me funciona, sigue igual... os poongo la estructura del sql, a ver si véis el problema :S

[sql]
CREATE TABLE IF NOT EXISTS `prueba` (
`id` mediumint(2) NOT NULL auto_increment,
`calorias` int(4) default NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
[/sql]

Por Hapki

Claber

268 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.