Actualizar registro en php

Buenas tardes.
Soy un entusiasta de la programación pero no me dedico a ello, solo en plan aficionado, pero he echo un web para mi trabajo poco a poco y la lo tengo todo echo, y de esta forma he potenciado mi jovi. He conseguido conectar la base de datos, dar de alta, bajas, listados y casi actualizar los registros bien.
Esta es mi pregunta, cada vez que actualizo un registro que busco por matricula actualiza varios en el campo seleccionado, llevo noches sin dormir durante meses, ya que es en plan jovi, lo he probado todo y falla, por eso me he decidido a escribir por inpotencia.
La web esta alojada en un servidor de strato.
La parte donde falla es solo este link
http://recambiosprades.fordcastellon.com/menuinternogarantias.htm
Modificaciones del estado de garantías tramitadas, es la parte que falla.
Estaría eternamente agradecido si me ayudas a resolver este problemón ya que con esto terminaría con el problema. Te envío toda la información necesaria creo.
Por cierto trabajo de Gerente de postventa en un concesión marca Ford, mal momento para el sector pero es lo que hay.
Saludos.
Pascual Pi (xxxxxx)
scripts
1- formsussituacion.php
<html>
<head>
<title>Actualizar situacion vehiculo en garantia</title>
</head>
<body>
<h2>LUIS PRADES S.A. SU CONCESIONARIO FORD EN CASTELLON</h2>
<h2>Modificacion situacion estado de la garnantia tramitada</h2>
<h2>Recuerde introducir los datos en mayusculas, en este caso al matricula.</h2>
<form action="sussituacion.php" method="post">
Ingrese la matricula para actualizar la situacion de la garantia:
<input type="text" name="matricula"><br>
<br>
<input type="submit" value="buscar garantia">
</form>
</body>
</html>
---------------------------------------------------------------------------------
2-sussituacion.php
<html>
<head>
<title>cambiar situacion vehiculo en garantia</title>
</head>
<body>
<h4>LUIS PRADES S.A. SU CONCESIONARIO FORD EN CASTELLON</h4>
<h4>Formulario para modificar la situacion del vehiculo</h4>
<?php
$conexion=mysql_connect("rdbms.strato.de","U333559","18941032") or
die("Problemas en la conexion");
mysql_select_db("DB333559",$conexion) or
die("Problemas en la selección de la base de datos");
$registros=mysql_query("select * from garantiasta
where matricula=' 
tiny_mce_markerREQUEST[matricula]'",$conexion) or
die("Problemas en el select:".mysql_error());
if ($reg=mysql_fetch_array($registros))
{
?>
<form action="oksituacion.php" method="post">
Ingrese la nueva situacion del vehiculo en garantia..:
<input type="tex" name="situacionnuevo" value="<?php echo $reg['situacion'] ?>">
<br>
<input type="hidden" name="situacionviejo" value="<?php echo $reg['situacion'] ?>">
<br>
<input type="submit" value="Modificar situacion vehiculo">
</form>
<?php
}
else
echo "No existe ningun vehiculo con esa matricula";
?>
</body>
</html>
----------------------------------------------------------------------------------
3-oksituacion.php
<html>
<head>
<title>Actualizar situacion del estado de la garantia</title>
</head>
<body>
<h4>LUIS PRADES S.A. SU CONCESIONARIO FORD EN CASTELLON</h4>
<?php
$conexion=mysql_connect("rdbms.strato.de","U333559","18941032") or
die("Problemas en la conexion");
mysql_select_db("DB333559",$conexion) or
die("Problemas en la selección de la base de datos");
$registros=mysql_query("update garantiasta
set situacion=' 
tiny_mce_markerREQUEST[situacionnuevo]'
where situacion=' 
tiny_mce_markerREQUEST[situacionviejo]'",$conexion) or
die("Problemas en el select:".mysql_error());
echo "La situacion del vehiculo se ha modificado con exito";
?>
<br>
<br>
<a href="http://recambiosprades.fordcastellon.com/menuinternogarantias.htm"> Ir al menu interno Luis prades.
</body>
</html>

1 respuesta

Respuesta
1
Tu problema es, en este caso, de concepto. En principio es muy recomendable que en una tabla de una base de datos, cada registro tenga un identificador único. No conozco exactamente tu tabla, pero puedo suponer que este identificador único podría ser la matrícula (si es que ésta no se repite nunca en la tabla). Sea ese campo u otro que puedas tener o crear, es ese campo el que debes referenciar cuando actualices los datos.
Ahora guardas la situación antigua del registro que quieres cambiar (mal) y actualizas TODOS los campos que tengan esa misma situación. Deberías almacenar en el atributo oculto la matrícula, y en la sentencia update cambiar el where por WHERE matricula=$_REQUEST["matricula"] y así sólo se moficará el registro que se ha solicitado (el que tiene esa matrícula).
Ánimo, que los malos momentos acaban pasando y dando paso a los mejores.
Buenas Noches David.
Ante todo gracias por contestarme, y más de forma gratuita, tenias razón algo estaba haciendo mal, con tu ayuda para identificar el problema y un poco de por ahí lo he solucionado, eso si me he calentado la cabeza hasta la estenuación y nada, como tu comentas los malos momentos acaban pasando.
Seguramente te preguntare alguna vez más.
Pascual Pi, Novato

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas