Foros del Web » Programando para Internet » PHP »

Modificar registro de una tabla de MySQL

Estas en el tema de Modificar registro de una tabla de MySQL en el foro de PHP en Foros del Web. Hola! He intentado hacer dos páginas de PHP para modificar el registro. El cliente quiere hacer como, seleccionar un producto dentro de una tabla, pulsamos ...
  #1 (permalink)  
Antiguo 22/02/2016, 20:26
 
Fecha de Ingreso: diciembre-2015
Ubicación: Granada
Mensajes: 9
Antigüedad: 8 años, 4 meses
Puntos: 0
Exclamación Modificar registro de una tabla de MySQL

Hola!

He intentado hacer dos páginas de PHP para modificar el registro. El cliente quiere hacer como, seleccionar un producto dentro de una tabla, pulsamos Modificar producto para cambiar los datos de un registro dentro de un formulario de otra página de PHP. He revisado todo, pienso está bien todo correctamente, sigue fallandome porque no me actualiza el registro. No encuentro el error, ayudame a solucionar y os permito que modificáis en el code? Es para este miércoles. Por favor y Gracias...

1º. Este archivo es para seleccionar un producto para modificarlo...(productos_modificar.php)

Código:
<?PHP session_start (); ?>
<HTML LANG="es">
<HEAD>
<TITLE>Modificar productos</TITLE>
</HEAD>
<BODY>
<?PHP if (isset($_SESSION["usuario_valido"])) {  ?>
<H1>Productos</H1>
<H2>Modificar el producto</H2>
<?PHP
$conexion = mysqli_connect ("mysql.hostinger.es", "u624010536_jardi", "****", "u624010536_jardi");		
$instruccion = "select CodigoProducto,Nombre,Descripcion,Gama FROM Productos";
$consulta = mysqli_query ($conexion, $instruccion);	
$nfilas = mysqli_num_rows ($consulta);
if ($nfilas > 0) {
print ("<FORM ACTION='productos_cambiar.php' METHOD='post'>\n");
print ("<TABLE>\n");
print ("<TR>\n");
print ("<TD>Código</TD>\n");
print ("<TD>Nombre</TD>\n");
print ("<TD>Descripción</TD>\n");
print ("<TD>Gama</TD>\n");
print ("<TD>Modificar</TD>\n");
print ("</TR>\n");

for ($i=0; $i<$nfilas; $i++) {
$resultado = mysqli_fetch_array ($consulta);
print ("<TR>\n");
print ("<TD>" . $resultado['CodigoProducto'] . "</TD>\n");
print ("<TD>" . $resultado['Nombre'] . "</TD>\n");
print ("<TD>" . $resultado['Descripcion'] . "</TD>\n");
print ("<TD>" . $resultado['Gama'] . "</TD>\n");
print ("<TD><INPUT TYPE='RADIO' NAME='modificar[]' VALUE='" .$resultado['CodigoProducto'] . "'></TD>\n");
print ("</TR>\n");
}
print ("</TABLE>\n");  		
print ("<P><INPUT TYPE='SUBMIT' NAME='modificar' VALUE='Modificar producto'></P>\n");
print ("</FORM>\n");   		    		
} else
print ("No hay productos disponibles");
mysql_close ($conexion);
print ("<P>[ <A HREF='login.php'>Menú principal</A> ]</P>\n");
} else {
print ("<BR><BR>\n");
print ("<P ALIGN='CENTER'>Acceso no autorizado</P>\n");
print ("<P ALIGN='CENTER'>[ <A HREF='login.php' TARGET='_top'>Conectar</A> ]</P>\n");
}
?>
</BODY>
</HTML>
2º. Este archivo es para modificar en formulario (En el campo, que me salga el valor que hayas elegido el producto para modificarlo por ejemplo "Nombre: Jazmín")...(productos_cambiar.php)

Código:
<?PHP session_start (); ?>
<HTML LANG="es">
<HEAD>
<TITLE>Modificar productos</TITLE>
</HEAD>
<BODY>
<?PHP if (isset($_SESSION["usuario_valido"])) {
$modificar = $_REQUEST['modificar'];
$CodigoProducto = $_REQUEST['CodigoProducto'];
$Nombre = $_REQUEST['Nombre'];
$Descripcion = $_REQUEST['Descripcion'];
$Gama = $_REQUEST['Gama'];
$error = false;
if (isset($modificar)) {
if (trim($Nombre) == "") {
$errores["Nombre"] = "¡Debe introducir el nombre del producto!";
$error = true;
} else
$errores["Nombre"] = "";
if (trim($Descripcion) == "") {
$errores["Descripcion"] = "¡Debe introducir el descripción del producto!";
$error = true;
} else
$errores["Descripcion"] = "";
}
if (isset($modificar) && $error==false) {
$conexion = mysqli_connect ("mysql.hostinger.es", "u624010536_jardi", "****", "u624010536_jardi"); 
$instruccion = "select * from Productos where CodigoProducto = $modificar[$i]";
$consulta = mysqli_query ($conexion, $instruccion); 
$instruccion = "update from Productos where CodigoProducto = $modificar[$i]";
mysqli_close ($conexion);     
print ("<H1>Productos</H1>\n");
print ("<H2>Resultado de la modificación del producto</H2>\n");
print ("<P>El producto ha sido modificado correctamente:</P>\n");
print ("<UL>\n");
print ("   <LI>Nombre: " . $Nombre . "\n");
print ("   <LI>Descripción: " . $Descripcion . "\n");
print ("   <LI>Gama: " . $Gama . "\n");
print ("</UL>\n");
print ("<P>[ <A HREF='productos_modificar.php'>Modificar otro producto</A> | ");
print ("<A HREF='login.php'>Menú principal</A> ]</P>\n");
} else {
?>
<H1>Productos</H1>
<H2>Modificar el producto</H2>
<FORM CLASS="borde" ACTION="productos_cambiar.php" NAME="modifica" METHOD="POST" ENCTYPE="multipart/form-data">
<P>
<LABEL>Nombre: *</LABEL>
<INPUT TYPE="TEXT" NAME=Nombre SIZE="50" MAXLENGTH="50"
<?PHP
if (isset($modificar))
print ("VALUE='$Nombre'>\n");
else
print (">\n");
if ($errores["Nombre"] != "")
print ("<BR><SPAN CLASS='error'>" . $errores["Nombre"] . "</SPAN>");
?>
</P>
<P>
<LABEL>Descripción: *</LABEL>
<TEXTAREA COLS="45" ROWS="5" NAME=Descripcion"
<?PHP
if (isset($modificar))
print ("VALUE='$Descripcion'>\n");
print ("$Descripcion");
print ("</TEXTAREA></P>");
if ($errores["Descripcion"] != "") 
print ("<BR><SPAN CLASS='error'>" . $errores["Descripcion"] . "</SPAN>");
?>
<P>
<LABEL>Gama:</LABEL>
<SELECT NAME="Gama">
<OPTION SELECTED>Aromáticas
<OPTION>Frutales
<OPTION>Herramientas
<OPTION>Ornamentales
</SELECT>
</P>
</P>
<BR>
<P>
<INPUT TYPE="SUBMIT" NAME="modificar" VALUE="Modificar producto">
</P>
</FORM>
<P>NOTA: los datos marcados con (*) deben ser rellenados obligatoriamente</P>
<P>[ <A HREF='login.php'>Menú principal</A> ]</P>
<?PHP
}
} else {
print ("<BR><BR>\n");
print ("<P ALIGN='CENTER'>Acceso no autorizado</P>\n");
print ("<P ALIGN='CENTER'>[ <A HREF='login.php' TARGET='_top'>Conectar</A> ]</P>\n");
}
?>
</BODY>
</HTML>
  #2 (permalink)  
Antiguo 22/02/2016, 20:41
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 2 meses
Puntos: 21
Respuesta: Modificar registro de una tabla de MySQL

Imprime tus consultas a mysql para que te des una idea de cuál puede ser el problema.
Si se muestra la consulta que esperabas, realízala en phpMyAdmin para ver el resultado.
  #3 (permalink)  
Antiguo 22/02/2016, 21:00
 
Fecha de Ingreso: diciembre-2015
Ubicación: Granada
Mensajes: 9
Antigüedad: 8 años, 4 meses
Puntos: 0
Exclamación Respuesta: Modificar registro de una tabla de MySQL

Cita:
Iniciado por carlillos Ver Mensaje
Imprime tus consultas a mysql para que te des una idea de cuál puede ser el problema.
Si se muestra la consulta que esperabas, realízala en phpMyAdmin para ver el resultado.
ya he imprimido para detectar los problemas, no encuentro nada... usando con print ("Código: ". $resultado['CodigoProducto'] .""); justo debajo de "$error = false;". Sigue sin aparecer.

Creo que el problema es que los variables del archivo 'productos_cambiar.php' no coge los variables de otra página de php. No encuentro donde esta el fallo en la pagina 'productos_modificar.php'.

Un saludo!
  #4 (permalink)  
Antiguo 22/02/2016, 23:08
Avatar de carlillos  
Fecha de Ingreso: febrero-2007
Ubicación: México
Mensajes: 245
Antigüedad: 17 años, 2 meses
Puntos: 21
Respuesta: Modificar registro de una tabla de MySQL

Estás enviando los datos de tus checkboxes en un array que se llama "modificar" que sólo contiene los códigos de productos, no contiene nombre ni descripción ni gama, por lo tanto esos datos nunca van a llegar a tu archivo productos_cambiar.php.
Luego tu botón de enviar también se llama "modificar", el nombre debe de ser único para que php lo pueda identificar.

Antes de revisar tu php corrige tu formulario y para no tener que imaginarlo todo mejor pega aquí tu html.
  #5 (permalink)  
Antiguo 23/02/2016, 13:25
 
Fecha de Ingreso: diciembre-2015
Ubicación: Granada
Mensajes: 9
Antigüedad: 8 años, 4 meses
Puntos: 0
Exclamación Respuesta: Modificar registro de una tabla de MySQL

Ya me funciona todo. Ahora me falta un pequeño problema sobre SELECT y OPTION. Tras elegir un producto que está en clase de Gama, en formulario deberia aparecer la misma clase de Gama que has seleccionado, por ejemplo, Producto seleccionado es Herramientas y luego en formulario, tiene que aparecer Herramientas. ¿No sé como colocar, ninguna forma no me funciona nada? Por favor y Gracias...

Código PHP:

<?PHP session_start (); ?>

<HTML LANG="es">

    <HEAD>

        <TITLE>Modificar productos</TITLE>

        <LINK REL="stylesheet" TYPE="text/css" HREF="./CSS/estilo.css">

    </HEAD>



    <BODY>



<?PHP

    
if (isset($_SESSION["usuario_valido"])) {
        
        
$conexion mysqli_connect ("mysql.hostinger.es""u624010536_jardi""****""u624010536_jardi");
        
$CodigoProducto $_GET ["Codigo"];
        
        
$instruccion "select * from Productos where CodigoProducto=" $CodigoProducto;
        
$consulta mysqli_query ($conexion$instruccion);
        
$resultado mysqli_fetch_object ($consulta);    
        
?>
        <H1>Productos</H1>

        <H2>Modificar el producto</H2>
        <FORM ACTION="productos_cambiar1.php" METHOD="POST">
            <INPUT TYPE="HIDDEN" NAME="CodigoProducto" VALUE="<?PHP print ($resultado->CodigoProducto); ?>">
            <P><LABEL>Nombre:</LABEL><INPUT TYPE="TEXT" NAME="Nombre" SIZE="59" MAXLENGTH="50" VALUE="<?PHP echo $resultado->Nombre?>"></P>
            <P><LABEL>Descripción:</LABEL><TEXTAREA COLS="45" ROWS="5" NAME="Descripcion"><?PHP echo $resultado->Descripcion?></TEXTAREA></P>
            <P><LABEL>Gama:</LABEL>

              <SELECT NAME="Gama">

               <OPTION>Aromáticas</OPTION>

                <OPTION>Frutales</OPTION>

                <OPTION>Herramientas</OPTION>

                <OPTION>Ornamentales</OPTION>

              </SELECT></P>
              <BR><P><INPUT TYPE="SUBMIT" VALUE="Modificar producto"></P>
          </FORM>
          

<?PHP
        mysqli_close 
($conexion);

    } else {

       print (
"<BR><BR>\n");

      print (
"<P ALIGN='CENTER'>Acceso no autorizado</P>\n");

      print (
"<P ALIGN='CENTER'>[ <A HREF='login.php' TARGET='_top'>Conectar</A> ]</P>\n");

    }

?>



    </BODY>

</HTML>
Un saludo!

Etiquetas: modificar, mysql, registro
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 03:44.