Foros del Web » Programando para Internet » PHP »

cuales son las razones de que se guarde un cero en la base de datos

Estas en el tema de cuales son las razones de que se guarde un cero en la base de datos en el foro de PHP en Foros del Web. tengo este codigo que es el formulario de registro de datos archivo nuevo_estudiante.php en este voy a obviar el diseño, el sesion_start() y los include ...
  #1 (permalink)  
Antiguo 26/02/2016, 18:51
 
Fecha de Ingreso: marzo-2015
Ubicación: zulia
Mensajes: 71
Antigüedad: 9 años, 8 meses
Puntos: 0
cuales son las razones de que se guarde un cero en la base de datos

tengo este codigo que es el formulario de registro de datos

archivo nuevo_estudiante.php

en este voy a obviar el diseño, el sesion_start() y los include de la conexion y la funcion que hara.

Código PHP:
NUEVO ESTUDIANTE
<form action="nuevo_estudiante.php" method="post" enctype="multipart/form-data">
<br><br>
<label>Cedula: </label>
<br>
<input type="text" name="cedula" required>
<br><br>
<label>Nombre: </label>
<br>
<input type="text" name="nombre" required>
<br><br>
<label>Apellido: </label>
<br>
<input type="text" name="apellido" required>
<br><br>
<label>Programa: </label>
<br>
<input type="text" name="programa" required>
<br><br>
<label>Carrera: </label>
<br>
<input type="text" name="carrera" required>
<br><br>
<label>Consejo Comunal: </label>
<br>
<input type="text" name="consejo_comunal">
<br><br>
<input type="submit" value="Registrarte">
</form>
<?php
if ($_POST){
    
$cedula $_POST['cedula'];
    
$nombre $_POST['nombre'];
    
$apellido $_POST['apellido'];
    
$programa $_POST['programa'];
    
$carrera $_POST['carrera'];
    
$consejo_comunal $_POST['consejo_comunal'];
    
    
$usuario = new usuario();
    
$usuario -> registrar($cedula$nombre$apellido$programa$carrera$consejo_comunal);
}
?>



archivo functions.php

ignoren la function de actualizar y borrar



Código PHP:
<?php
    
class usuario{
        var 
$cod$cedula$nombre$apellido$programa$carrera$consejo_comunal;
        function 
registrar ($cedula$nombre$apellido$programa$carrera$consejo_comunal){
            
$this-> cedula $cedula;
            
$this-> nombre $nombre;
            
$this-> apellido $apellido;
            
$this-> programa $programa;
            
$this-> carrera $carrera;
            
$this-> consejo_comunal $consejo_comunal;
    
            
$sql="SELECT * FROM usuarios WHERE cedula='".$cedula."'";
            
$result mysql_query ($sqlconectar::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($sqlconectar::conexion());
    
            echo 
'<script type="text/javascript">
            alert("Este usuario se ha registrado satisfactoriamente");
            window.location.href="./estudiante_admin.php";
            </script>'
;
    

            }else{
            echo 
'<script type="text/javascript">;
            alert ("Esta cedula ya esta en uso");
            windows.location.href="./nuevo_estudiante.php";
            </script>'
;
        
        
    }
    
}
        
        function 
actualizar ($cod$cedula$nombre$apellido$programa$carrera$consejo_comunal){
            
$this-> cod $cod;
            
$this-> cedula $cedula;
            
$this-> nombre $nombre;
            
$this-> apellido $apellido;
            
$this-> programa $programa;
            
$this-> carrera $carrera;
            
$this-> consejo_comunal $consejo_comunal;
            
$sql "UPDATE usuarios SET cedula = '$cedula', nombre = '$nombre', apellido = '$apellido', programa = '$programa', carrera = '$carrera', consejo_comunal = '$consejo_comunal' WHERE cod = $cod";
            
mysql_query($sqlconectar::conexion());
            echo 
'<script type="text/javascript">
            alert("El usuario se ha Actualizado Correctamente");
            window.location.href="estudiante_admin.php"
            </script>'
;
            
        }
        
        function 
eliminar ($cod){
            
$this-> cod $cod;
            
$sql "DELETE FROM usuarios WHERE cod=$cod";
            
$result mysql_query($sqlconectar::conexion());
            echo
'<script type="text/javascript">
            alert("El Usuario se ha Eliminado Correctamente");
            window.location.href="estudiante_admin.php"
            </script>'
;
        }
        
}

?>


no se porque no me guarda nada y me pone solo ceros, solo me guarda el campo cedula. espero que me ayuden, por si acaso y para que sepan, este no es un trabajo del cual me lucrare, es mi proyecto y lo tengo que entregar y ya va a reventar mi cabeza.
  #2 (permalink)  
Antiguo 26/02/2016, 19:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: cuales son las razones de que se guarde un cero en la base de datos

Yo en tu lugar pondría varias sentencias var_dump() fuera y dentro de tu clase, tanto como para saber si los datos los recibes bien, como para ver si los pasas bien al método registrar(), etc.

Es imposible que leyendo tu código sepamos que anda mal, porque sencillamente no podemos ejecutarlo mentalmente.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 26/02/2016, 20:01
 
Fecha de Ingreso: marzo-2015
Ubicación: zulia
Mensajes: 71
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: cuales son las razones de que se guarde un cero en la base de datos

ok, buscare información acerca de esto porque no se nada al respecto y la implantare.
  #4 (permalink)  
Antiguo 26/02/2016, 20:08
 
Fecha de Ingreso: diciembre-2015
Mensajes: 529
Antigüedad: 8 años, 11 meses
Puntos: 39
Respuesta: cuales son las razones de que se guarde un cero en la base de datos

Código PHP:
Ver original
  1. var_dump($foo);
, te recibe todo el contenido de la variable $foo, la vas poniendo en cada momento donde la utilices o la requieras, y ves en qué punto se cortan los datos.
  #5 (permalink)  
Antiguo 27/02/2016, 08:21
 
Fecha de Ingreso: junio-2015
Mensajes: 30
Antigüedad: 9 años, 5 meses
Puntos: 1
Respuesta: cuales son las razones de que se guarde un cero en la base de datos

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
  #6 (permalink)  
Antiguo 27/02/2016, 09:00
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: cuales son las razones de que se guarde un cero en la base de datos

Cita:
Iniciado por criscc19 Ver Mensaje
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 ($sqlconectar::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($sqlconectar::conexion()); 
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 27/02/2016 a las 09:07
  #7 (permalink)  
Antiguo 27/02/2016, 11:19
 
Fecha de Ingreso: marzo-2015
Ubicación: zulia
Mensajes: 71
Antigüedad: 9 años, 8 meses
Puntos: 0
Respuesta: cuales son las razones de que se guarde un cero en la base de datos

Cita:
Iniciado por criscc19 Ver Mensaje
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
te amo, lo sabes?
era eso
disculpen la pregunta para un error tan estupido, gracias a todos

Etiquetas: cero, cuales, formulario, mysql, registro, select, son, sql, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:01.