Foros del Web » Programando para Internet » PHP »

Solo Puedo Modificar Campos Que Contengan Numeros, Porque No Texto???

Estas en el tema de Solo Puedo Modificar Campos Que Contengan Numeros, Porque No Texto??? en el foro de PHP en Foros del Web. Abajo esta el codigo y con el perfectamente modifico los campos que contienen numeros por ejemplo la edad, peso, altura, pero cuando selecciono un campo ...
  #1 (permalink)  
Antiguo 26/05/2008, 09:09
 
Fecha de Ingreso: julio-2007
Ubicación: argentina
Mensajes: 127
Antigüedad: 16 años, 9 meses
Puntos: 0
Solo Puedo Modificar Campos Que Contengan Numeros, Porque No Texto???

Abajo esta el codigo y con el perfectamente modifico los campos que contienen numeros por ejemplo la edad, peso, altura, pero cuando selecciono un campo que contiene texto ni siquiera da un error ni borra el dato anterior ni escribe nada. Donde hay que cambiar??? en la base o el script de php.???
MUY IMPORTANTE. Yo utilice este scripts que no es precisamente de esta tabla que no era para calificar desde el dato del DNI. Osea que los campos no tienen nada que ver solo estoy probando con esta tabla que tengo.

Y bajo tambien el formulario para ver si hay algo alli que en realidad me parece no tiene nada que ver.

Gracias por la ayuda.
Ricardo
PD: Queria decir algo que veo ahora, pero talves sea una estupidez de alguien que recien empieza. En la variable $comprueba hay solo numeros y hay un "if" que creo quiere decir que si 0 no es igual a 0 que avise o sea habla de numeros.


----------------------------------------------------------------------------
FORMULARIO DE MODIFICACION

<html>
<head><title>Formulario de modificaciones</title></head>
<body>
<h2>MODIFICACION DE PUNTUACIONES<BR>
DE LA PRUEBA Nº 2 </H2>
<FORM name="modificar" method="post" action="modifique.php">

<table align=center border=2>


<td>Escriba el DNI de la persona a calificar..:</td>
<td><input type="text" name="Penitente" size="20" maxlength="255"value=""></td><tr>
<td>Escriba aquí la calificación..:</td>
<td><input type="text" name="Calificacion" size="20" maxlength="255"value=""></td><tr>
<td align=center><input type="submit" value="Calificar"></td>
<td align=center><input type="reset" value="Borrar"></td>

</table>
<!-- Caundo la variable $avisa recoge el mensaje creado en
el script que actualiza la base de datos, la imprimimos
con esta etiqueta PHP -->
<br>
<BR>
<H3><CENTER>Tenga en cuenta que la calificación requiere<br>un número de DNI existente en la base de datos</center></h3>
</form>
</body>
</html>


----------------------------------------------------------------------
<?

#recogemos del formulario las variables Calificacion y Penitente
# en variables automaticas de PHP que serán $Calificacion y $Penitente
# atención a Mayusculas/Minusculas en nombres de variables
# recuerda que para PHP son DISTINTAS

$valor=$Calificacion;

$base=" ";

# establecemos la conexión con el servidor

$conexion=mysql_connect ("","","");

#Seleccionamos la BASE DE DATOS en la que PRETENDEMOS TRABAJAR

mysql_select_db ($base, $conexion);

# establecemos el nombre de la tabla en una variable

$tabla="";

################################################## #######################
# COMPROBACION DE LA EXISTENCIA DE UN REGISTRO CON ESE D.N.I. #
################################################## #######################

# Es una operación necesaria para advertir al usuario de la correcta realización
# del proceso de modificación.
# Si introducimos un DNI inexistente la función UPDATE no DARA MENSAJE DE ERROR
# aunque evidentemente NO LO ACTUALIZARA tampoco
#
# Para hacer esa comprobación tenemos múltiples opciones una de ellas sería
# contar los registros en los que el DNI es igual al valor recibido en la variable
# $Penitente
# Si existiera el DNI devolvería UNO en el índice CERO DEL ARRAY
# recuerda que los indices de ese array se corresponden con el orden
# en el que han sido insertados los campos en la opcion SELECT
# en este caso solo ponemos uno... COUNT(DNI) por lo que el índice del array
# ha de ser el primero de los posibles que como sabes es CERO

$resultado=mysql_query("SELECT nombre(nombre) FROM $tabla WHERE (nombre=$Penitente)",$conexion);
$comprueba=mysql_fetch_array($resultado);

#HACEMOS LA COMPROBACION
# y en caso de inexistencia del recogemos en una variable ($Avisar)
# la cadena del mensaje de inexistencia
# en otro caso (cuando el DNI existe) hacemos que ese mensaje sea la cadena vacia

if($comprueba[0]==0) {$avisar="<h2>No existe nadie con nombre ".$Penitente. " en la base de datos<br>Su Modificacion anterior no ha sido procesada</h2>";
}else{
$avisar="";
}

# hacemos la llamada a MySQL mediante la función mysql_query
# y le decimos que UPDATE (modifique) la tabla
# y que lo haga (SET) en el campo Puntos
# poniendo el valor que en este caso $valor
# si el DNI existe en la base de datos actualizará el valor
# y si no existe no pasa nada... ya tenemos el mensaje de error
# que nos aparecerá en la página formulario

$resultado=mysql_query("UPDATE $tabla set edad=$Calificacion WHERE (nombre=$Penitente)",$conexion);

#colocamos la opcion de mensaje de error por si se produce alguna incidencia

if (mysql_errno($conexion)==0){echo " ";
}else{
if (mysql_errno($conexion)==1062){echo "<h2>No ha podido añadirse el registro<br>Ya existe un campo con este DNI</h2>";
}else{
$numerror=mysql_errno($conexion);
$descrerror=mysql_error($conexion);
echo "Se ha producido un error nº $numerror que corresponde a: $descrerror <br>";
}

}

# cerramos la conexión con la base de datos


mysql_close($conexion);

# escribimos un mensaje para que nos avise del final de proceso de actualización

#insertamos el script de Java que nos devolverá al formulario

################################################## ###
#fijate como pasamos el valor del mensaje de aviso #
################################################## ###

# para pasar valores a PHP hay la opcion de añadir a la direccion
# URL del script el simbolo de cerrar interrogacion
# seguido del nombre de la variable con la que será transferido
# el signo igual y el valor de la variable
#
# si quieres pasar mas de una variable la sintaxis sería
# http://loquesea.php?variable1=valor1...riable3=valor3




?>

<script language='JavaScript'>


<? echo "window.self.location='pag1.html?avisa=$avisar '" ?>


</script>
  #2 (permalink)  
Antiguo 26/05/2008, 09:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Solo Puedo Modificar Campos Que Contengan Numeros, Porque No Texto???

Hola ricala1,

Recuerda que cuando trabajas campos de texto estos deben de ir entre comillas o si no te dará error tu query, es decir no es correcto esto:
Código:
UPDATE tabla SET nombre=$nombre
Debe de ser así:
Código:
UPDATE tabla SET nombre='$nombre'
Saludos.
  #3 (permalink)  
Antiguo 26/05/2008, 17:28
 
Fecha de Ingreso: julio-2007
Ubicación: argentina
Mensajes: 127
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Solo Puedo Modificar Campos Que Contengan Numeros, Porque No Texto???

Hola GatorV.
Mil gracias por tu respuesta y me da bronca que estuve justamente estudiando ese tema hace unos dias y la tenia bien clara pero mi mente parece que no da mas jajajaja.

Un abrazo
Ricardo
PD: todavia no lo probe pero se que es eso, asi que lo doy por hecho.
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 20:46.