Cita:
Iniciado por criscc19 pareciera que el problema esta en el campo de la base de datos, puede que tengas los campos como tipo numerico, (INT). siempre que mandes un string a un int, te pondra 000
No "siempre"... Dependerá de qué contenga la cadena, ya que si el contenido es un número, MySQL genera una conversión implícita.
El problema es que si lo está enviando como cadena, y el contenido es un caracter vacío, entonces la conversión devuelve cero.
Es una
pésima práctica de programación poner todos los datos en la sentencia como cadenas. Sólo deben ir como tales los textos, fechas (se recomienda usar funciones de conversion en SQL), horas, y NADA MAS.
Los números deben ir sin apostrofos. De ese modo, si el dato no llega se genera como se espera en el formulario, la sentencia SQL queda mal formada, se dispara un error de sintaxis
que es extremadamente útil para detectar errores.
Obviamente eso requiere que se programe bien, sin asumir que las cosas esán bien porque las escribes bien. Todo proceso debe ser validado, y todo valor entrante debe ser validado, cosa que no veo en estos códigos.
Como mínimo, yo haría esto:
Código PHP:
if ($_POST){
$cedula = $_POST['cedula'];
$nombre = $_POST['nombre'];
$apellido = $_POST['apellido'];
$programa = $_POST['programa'];
$carrera = $_POST['carrera'];
$consejo_comunal = $_POST['consejo_comunal'];
// Verificar que realmente estan todos los datos:
var_dump( $_POST);
//
$usuario = new usuario();
$usuario -> registrar($cedula, $nombre, $apellido, $programa, $carrera, $consejo_comunal);
}
Tampoco usaría los mismos nombres para los parametros de la función que para los atributos de clase. Me parece riesgoso (alguien sabrá mas que yo sobre eso):
Código PHP:
class usuario{
var $cod, $cedula, $nombre, $apellido, $programa, $carrera, $consejo_comunal;
function registrar ($v_cedula, $v_nombre, $v_apellido, $v_programa, $v_carrera, $v_consejo_comunal){
$this-> cedula = $v_cedula;
$this-> nombre = $v_nombre;
$this-> apellido = $v_apellido;
$this-> programa = $v_programa;
$this-> carrera = $v_carrera;
$this-> consejo_comunal = $v_consejo_comunal;
$sql="SELECT * FROM usuarios WHERE cedula='".$cedula."'";
$result = mysql_query ($sql, conectar::conexion());
$contar = mysql_num_rows ($result);
if ($contar==0){
$sql="INSERT INTO usuarios (cedula, nombre, apellido, programa, carrera, consejo_comunal) VALUES ('".$cedula."', '".$nombre."', '".$apellido."', '".$programa."', '".$carrera."', '".$consejo_comunal."')";
$result = mysql_query($sql, conectar::conexion());