Mysql y php

Hola buenas, mi pregunta va relacionada con bases de datos en mysql php, pues le cuento que estoy creado una base de datos con varios ficheros de altas, bajas y modificaciones, pues bien en el fichero de modificaciones aparentemente no tiene error, pero cuando lo ejecuto para hacer la modificaciones, en lugar de modificar el campo lo deja en blanco, solo he puesto un ejemplo de modificar el teléfono en la base de datos y solo rellena el campo con cero en lugar de poner el numero que se envíe. Espero no haberle liado con todo esto a continuación le copio los ficheros de modificaciones.
fichero mod.php
<HTML>
<HEAD>
<TITLE>Actualizacion de socios</TITLE>
</HEAD>
<BODY>
<div align="center">
<body bgcolor="green">
<h1 align="center"><font face="verdana" color="white"><b>Actualizar un registro</b></font></h1>
<br>
<?
//Conexion con la base
mysql_connect("localhost","misuer","password");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("mibase");
echo '<FORM METHOD="POST" ACTION="actu.php">Cod_socio<br>';
//Creamos la sentencia SQL y la ejecutamos
$sSQL="Select Cod_socio From socios Order By Cod_socio";
$result=mysql_query($sSQL);
echo '<select name="Cod_socio">';
//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{
    echo '<option>'.$row["Cod_socio"];
}
echo'</select>';
?>
<br>
<form>
TELEFONO:<INPUT TYPE="TEXT" NAME="TELEFONO" id="Telefono"><br>
<INPUT TYPE="SUBMIT" value="Actualizar">
</FORM>
</div>
<div align="center"><a href="index.php">Volver al indice</a></div>
</BODY>
</HTML>
fichero  actu.php
<HTML>
<HEAD>
<TITLE>Actualizar2.php</TITLE>
</HEAD>
<BODY>
<?
//Conexion con la base
mysql_connect("localhost","miuser","password");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("mibase");
//Creamos la sentencia SQL y la ejecutamos
#$sSQL="Update socios Set nombre='$nombre' Where Cod_socio='$Cod_socio'";
$sSQL="Update socios Set Telefono='".$_POST['Telefono']."' Where Cod_socio='".$_POST['Cod_socio']."'";
mysql_query($sSQL);
?>
<h1 align="center"><font face="verdana" color="white"><b>Registro actualizado</b></font></h1>
<body bgcolor="green">
<div align="center"><a href="list.php">Visualizar el contenido de la base de datos</a></div>
<div align="center"><a href="index.php">Volver al indice</a></div>
</BODY>
</HTML>
Gracias y espero su respuesta

1 Respuesta

Respuesta
1
Sin tener la base de datos, yo comprobaría varias cosas antes de realizar la inserción del teléfono en la base de datos.
1º.- Que el campo de la base de datos tiene un formato correcto para almacenar teléfonos, para lo cual yo pondría un INT(9).
2º.- Comprobar que antes de hacer la inserción recibo el dato correctamente mostrándolo por pantalla:
- echo $_POST['telefono'];
En esta opción fíjate que el nombre de la variable POST coincide con el Name del formulario, lo que en tu caso veo que no es así. En el formulario lo tienes como 'TELEFONO' y luego lo recoges como 'Telefono'.
Una vez hecho eso, no estaría mal que revisaras la sentencia SQL, sobre todo por el tema de las comillas, a la hora de insertar datos tiene que ir entre comillas simples, pero si dentro de estas pones otras comillas simples, sql estará entendiendo que las abres y las cierras dos veces... prueba de esta forma:
Update socios Set Telefono='".$_POST[Telefono]."' Where Cod_socio='".$_POST[Cod_socio]."' ";
O tienes la posibilidad de recibir la variable en otra más sencilla y luego hacer la inserción:
$tlf=$_POST['Telefono'];
$cod=$_POST['Cod_socio'];
//Esto te permite primero hacer una comprobación de que los datos son correctos.
Update socios Set Telefono='$tlf' Where Cod_socio='$cod' ";

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas