Foros del Web » Programando para Internet » PHP »

No me modifica los registros de las tablas

Estas en el tema de No me modifica los registros de las tablas en el foro de PHP en Foros del Web. Hola buenas. Tengo este código para modificar registros lo bueno que lo he utilizado en otra web y me funciona bien, pero en una nueva ...
  #1 (permalink)  
Antiguo 17/08/2009, 09:44
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
No me modifica los registros de las tablas

Hola buenas.

Tengo este código para modificar registros lo bueno que lo he utilizado en otra web y me funciona bien, pero en una nueva que estoy realizando no me actualiza los datos.

Código PHP:
<?php
import_request_variables
("P","f_");
$linea1="UPDATE embarcaciones ";
$linea2="  SET tipo='$f_tipo', fabricante='$f_fabricante', modelo='$f_modelo'";
$linea3=" WHERE referencia='$modif' ";
$consulta=$linea1.$linea2.$linea3;
//echo $consulta;
if ( ! $link=mysql_connect('localhost','user','1234'))
{
echo 
"<a href=index.html>Error al conectar</a>";
exit ;
}
if ( ! 
mysql_select_db("nueva_base"))
{
    echo 
"<a href=index.html>Error al seleccionar BDD</a>";
    exit;
}
if ( ! 
$result=mysql_query($consulta,$link))
{
echo 
"<a href=index.html>Error en la consulta</a>";
exit;
}
echo 
"<br><center><h3>Modificación correcta</h3></center>";
No me da ningun error me sale el echo "Modificación correcta", pero en la base de datos hay veces que no me actualiza y otras que si pero las veces que actualiza los datos los introduce en unos cuantos registros de la tabla y no solo en el que le corresponde.

Tengo tres archivos.

- Modif.php "Muestra listado de contenido de la tabla, y selecciono el registro que quiero ver"
- Modif2.php "Una vez seleccionado el producto me lo muestra en una ventana para modificar"
- Modif3.php "Es el archivo que se encarga de modificar la tabla"

El código que les he mostrado anteriormente es de modif3.php

Alguien me podría decir donde tengo el fallo?

Muchas gracias
  #2 (permalink)  
Antiguo 17/08/2009, 11:11
Avatar de dalyla  
Fecha de Ingreso: septiembre-2005
Mensajes: 135
Antigüedad: 18 años, 7 meses
Puntos: 1
Respuesta: No me modifica los registros de las tablas

Creo que en vez de imprimir modificacion correcta debes imprimir el query, porque talvez lo que tengas como condicion no encuentre datos de que modificar y quizas tu variable este mal. ya que dices que el codigo funciona en otra parte, y en el actual funciona aveces :)
  #3 (permalink)  
Antiguo 17/08/2009, 11:40
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: No me modifica los registros de las tablas

Hola gracias por responderme.

Como puedo imprimir el query?

Código PHP:
$result=mysql_query($consulta,$link
Si quito Modificación correcta y lo cambio por ($result) el resultado es (1)

He probado en la página donde si que me funciona y hay haciendo los mismos cambios me da el mismo resultado.

1 no es el id no se que resultado es, pero me sigue sin modificar nada.

Soy relativamente nuevo en esto de la programación y la verdad que me esta costando un poco coger los conceptos.

A que variable te refieres cuando me dices que puede estar mal?

En cambio la página que tengo para eliminar los registros funciona bien.


Muchas gracias.
  #4 (permalink)  
Antiguo 17/08/2009, 12:18
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Sonrisa Respuesta: No me modifica los registros de las tablas

Prueba con esto:

Código PHP:
<?php
$link 
mysql_connect "localhost""user""1234" ) or die ("Error: ".mysql_error());
$db mysql_select_db "nueva_base",$link );

import_request_variables("P","f_");
$Consulta="UPDATE embarcaciones SET tipo='$f_tipo', fabricante='$f_fabricante', modelo='$f_modelo' WHERE referencia='$modif'";
if (
mysql_query($Consula))
 {
 echo 
"FUNCIONO!";
 }
 else
 {
 echo 
"Error #".mysql_errno().": ".mysql_error()."<br>";
 }
 
?>
Con eso veras los errores (SI HAY) de las consultas....

Prueba eso y dime que sale haber que sucede, con eso veras si el codigo se ejecuta o no y que arroja si llegara a dar error....
  #5 (permalink)  
Antiguo 17/08/2009, 12:18
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: No me modifica los registros de las tablas

Cambia esta linea:
echo "<br><center><h3>Modificación correcta</h3></center>";
por esta otra:
echo "<br><center><h3>Modificación correcta</h3>($consulta)</center>";
  #6 (permalink)  
Antiguo 17/08/2009, 12:22
Avatar de JuJoGuAl  
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 14 años, 9 meses
Puntos: 19
Respuesta: No me modifica los registros de las tablas

Si muestras "$consulta" creo que lo que va a hacer es mostrar:

Código PHP:
UPDATE embarcaciones SET tipo='$f_tipo'fabricante='$f_fabricante'modelo='$f_modelo' WHERE referencia='$modif' 
ya que eso es lo que tiene la variable consulta
  #7 (permalink)  
Antiguo 17/08/2009, 12:33
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: No me modifica los registros de las tablas

Cita:
Iniciado por JuJoGuAl Ver Mensaje
Si muestras "$consulta" creo que lo que va a hacer es mostrar:

Código PHP:
UPDATE embarcaciones SET tipo='$f_tipo'fabricante='$f_fabricante'modelo='$f_modelo' WHERE referencia='$modif' 
ya que eso es lo que tiene la variable consulta
En teoria no, siempre y cuando en el formulario de donde recoge los datos con la funcion import_request_variables() contenga los campos llamados como 'tipo', 'fabricante' y 'modelo', ya que esa funcion les añade el prefijo 'f_' mostrara los datos correctos.

En lo unico que tengo dudas es en la variable $modif, ya que no sabemos de donde viene, y tampoco tiene el prefijo 'f_' con lo que no se si es que se ha olvidado o viene de otro lado...
  #8 (permalink)  
Antiguo 17/08/2009, 12:41
 
Fecha de Ingreso: noviembre-2007
Mensajes: 4
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: No me modifica los registros de las tablas

Hola falta código para poder darte el motivo pero creo que primero deberías estructurarlo mejor, me explico:

Conexión:



Código PHP:
$hostname "localhost";
$database "basedatos";
$username "user";
$password "1234";
 
$conbdmysqli_connect($hostnam$username$password) or trigger_error(mysqli_error(),E_USER_ERROR); 
 
mysqli_select_db$conbd$database); 

este código quedaría en un archivo único que llamarias con un include en los archivos que quieras que hagan conexión

y la query en una línea

ejemplo:


Código PHP:
include ('conexion.php');
$actualizar="UPDATE embarcaciones SET 
tipo='"
.$_POST['tipo']."' , 
fabricante='"
.$_POST['fabricante']."',
modelo='"
.$_POST['modelo']."'
 WHERE referencia='$modif' "
;
$queryactualizar=mysqli_query($conbd$actualizar); 
para ver la query

Código PHP:
echo $actualizar 
y lo pruebas en el sql de tu phpmyadmin

este código esta en mysqli que es más nuevo para mysql le quitas la i
  #9 (permalink)  
Antiguo 17/08/2009, 20:33
 
Fecha de Ingreso: junio-2008
Mensajes: 287
Antigüedad: 15 años, 10 meses
Puntos: 1
De acuerdo Respuesta: No me modifica los registros de las tablas

Hola buenas noches.

ya he solucionado el problema.

El fallo lo tenia en la programación, culpa mia.

En vez de utilizar el campo ID como el principal para las modificaciones y el borrado estaba utilizando un campo REFERENCIA, y claro el programa se volvia raro y me hacia cosas muy raras.

Despues de releer toda la programación y compararla con unos ejemplos que tengo en papel, he dado con el error.

De verdad que muchas gracias a todos.
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

SíEste tema le ha gustado a 1 personas




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