Controlar existencia de dato en mysql, sino insert

Les cuento lo que me anda ocurriendo. Tengo el código este que hice en php:
http://pastebin.com/V2QG2psj
La cuestión es que en la linea 12 hago una consulta al mysql por un numero de id que después uso para un insert..
Yo en la linea 14 le puse que si ese query me daba vacío, insertaba el dato y hacia el select otra vez.. Ahora, lo que me ocurre es que pareciera que igual no lo encuentra el query luego, porque cuando en la linea 21 hago en insert de ese valor siempre me ingresa un 0.
¿Alguna idea de que puedo esta errando?

1 respuesta

Respuesta
1
No crees que te falta un else? ¿Luego de preguntar si esta vacío...?
$IdClase = mysql_query("SELECT IdClase FROM Clases WHERE IdMateria = '$IdMateria' AND IdProfesor = '$IdProfesor' AND Anio = '$ano' AND Modulo = '$modulo'");
                if (empty($IdClase)) {
  mysql_query("INSERT INTO Clases (IdMateria, IdProfesor, Anio, Modulo) VALUES ('$IdMateria', '$IdProfesor', '$ano', '$modulo'");
                        $IdClase = mysql_query("SELECT IdClase FROM Clases WHERE IdMateria = '$IdMateria' AND IdProfesor = '$IdProfesor' AND Anio = '$ano' AND Modulo = '$modulo'");
                        echo 'Hola';
                }else{
                     if($IdEstudiante != 0 and $IdClase != 0){
                    $query = "INSERT INTO EstudiantesYClases (IdEstudiante, IdClase) VALUES ('$IdEstudiante', '$IdClase')";
            mysql_query($query) or die ('No se pudo agregar la clase al alumno.');
                        echo 'La clase ha sido agregada correctamente.';
        } else {
                        echo 'Comela.';
                }
       }
Hola tnathos, gracias por responder.. bueno la verdad he probado lo que me dices y no funciona.. creo que poner el else ahí seria incorrecto, ya que si la variable llegara a estar vacía, haría el primer insert, volvería a seleccionar y nunca haría el insert que realmente se buscaba, no se si me explico.
De todos modos, lo que me esta pasando es que elquery me esta insertando un 0 en IdClase, lo cual me extraña porque la condición para la inserción es justamente que sea distinto de cero, lo cual me hace dudar de que este viniendo en el query con algún formato medio raro tipo Resourse #7 o cosas de ese tipo.. En caso de ser así, ¿alguna idea de como sacar el valor que a mi me esta interesando? Muchas gracias nuevamente :D
No creo que el query te este devlviendo algo raro.. ¿idclase es autonumérico cierto?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas