Condicional con if en php

Yo hago este condicional con la siguiente consulta pero no logro que lo que almacene en la bd sea los desempeños por ejemplo BAJO + LA NOTA INSERTADA

Resulta que sí me la muestra pero no consigo que se almacene el nivel del desempeño más la nota...

Solo esta almacenando la nota

Por ejemplo si dígito 3.0 en el formulario de inserción de los desempeños me muestra en la página siguiente bajo 3 pero cuando voy a la tabla en mysql no se está insertando la palabra bajo sino solamente la nota

Y sé que todo está en la consulta pero no logro almacenar en la bd el desempeño + la nota

if(isset($_POST["Enviar"])){
$D= $_POST['Des'];
if($D<=2.99){
echo "Bajo $D";
}else if($D<=3.99){
echo "Básico $D";
}else if($D<=4.5){
echo "Alto $D";
}else if($D<=5.0){
echo "Superior $D";
}
}
$query="INSERT INTO Desempeño(Desempeño) VALUES (".$D.")";

Respuesta

Es correcta la respuesta de Cyrus, pero tienes dos inconvenientes:
1. No sabemos si el tipo de campo de la base de datos admite texto. Si no admite texto debes cambiarlo a varchar antes, si no te dará error.

2. Si escribes texto en el campo (Ej: Bajo 1.99) al ejecutar de nuevo el script de inserción, los condicionales no podrán evaluar el resultado, pues no es un número. Para arreglar esto, podrías hacer un explode del resultado para quedarte solo con el número y después poder compararlo en los if.

Dicho esto, mira a ver si te es tan necesario incluir el desempeño en la base de datos.

1 respuesta más de otro experto

Respuesta

Haz un die($query) para ver exactamente la consulta que se va a ejecutar. Yo creo que $D vale 3, pero mostrar muestras diferente. Yo haría esto:

if(isset($_POST["Enviar"])){
$D= $_POST['Des'];
if($D<=2.99){
$des_completo = "Bajo $D";
}else if($D<=3.99){
$des_completo = "Básico $D";
}else if($D<=4.5){
$des_completo = "Alto $D";
}else if($D<=5.0){
$des_completo = "Superior $D";
}

echo $des_completo;
}
$query="INSERT INTO Desempeño(Desempeño) VALUES (".$des_completo.")";

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas