Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/05/2008, 09:09
ricala1
 
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>