Foros del Web » Programando para Internet » PHP »

Problema actualizar datos y mostrarlos

Estas en el tema de Problema actualizar datos y mostrarlos en el foro de PHP en Foros del Web. Tengo un problema en la parte de modificacion de mis registros. veran la cosa esta asi... tengo 2 tablas equipo y otros_articulos, para cada equipo ...
  #1 (permalink)  
Antiguo 10/11/2010, 17:17
 
Fecha de Ingreso: noviembre-2010
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Exclamación Problema actualizar datos y mostrarlos

Tengo un problema en la parte de modificacion de mis registros. veran la cosa esta asi...
tengo 2 tablas equipo y otros_articulos,
para cada equipo le corresponden ciertos articulos, por lo cual se creo una tabla intermedia entre estas dos.

tengo un archivo en el cual tengo el codigo necesario para jalar los datos en un arreglo y plasmarlos en una tabla ....hasta ahi todo va bien aunque tenia mis dudas para poder seleccionar los datos de las 3 tablas y que estos tuvieran concordancia...
finalmente pude programar esta parte ....
asi mismo doi de alta nuevos articulos.....en los cuales mediante combo box puedo elegir una clave de inventario de ekipo para asignarsela a kada articulo....hasta ahi todo bien.....
el problema se presenta cuando desea modificar los datos, pues igualmente como ise en el primer script para imprimer los resulados de mi consulta en una tabla en este los imprimo en un fomrulario kedando el skript asi:

Código PHP:
<?php
include ("conexion.php");
//consulta los registros de la tabla equipo
$rst_equipo=mysql_query("SELECT * FROM equipo ORDER BY clave_inventario_equipo",$conexion);
if (
mysql_num_rows($rst_equipo)==0)
    echo 
"No se han definido los equipos";
    
    
$mas="AND otros_articulos.clave_inventario_articulo="$_REQUEST["clavedeinventario"];

//-----------------------------------------------------------------------------------------------
$rst_otros=mysql_query ("SELECT otros_articulos.*,otros_articulos_has_equipo.id_equipo FROM otros_articulos, equipo,otros_articulos_has_equipo WHERE otros_articulos_has_equipo.id_otros = otros_articulos.id_otros AND otros_articulos_has_equipo.id_equipo = equipo.id_equipo "$mas .";",$conexion);
//------------------------------------------------------------------------------------------------
 
$fila_otros=mysql_fetch_array($rst_otros);

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>

<body>
<div align="center">
<form id="form1" name="form1" method="post" action="equipo-actualizar_guardar.php?clavedeinventario=<?php echo $_GET["clavedeinventario"]; ?>">
        <table width="200" border="1">
      <tr>
        <th scope="col">ACTUALIZAR ARTICULO</th>
      </tr>
    </table>
    <p>INGRESE LOS SIGUIENTES DATOS DEL EQUIPO</p>
    <table width="200" border="0">
      <tr>
        <th scope="col">&nbsp;</th>
        <th scope="col"><label for="clave">Clave de Inventario</label>
        <input type="text" name="clave" id="clave" value="<?php echo $fila_otros["clave_inventario_articulo"]?>" /></th>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><div align="center">
          <label for="tipo"><strong>Tipo Articulo</strong></label>
          <input type="text" name="tipo" id="tipo" value="<?php echo $fila_otros["tipo_articulo"]?>" />
        </div></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><div align="center">
          <strong>
          <label for="marca">Marca del Articulo</label><input type="text" name="marca" id="marca"  value="<?php echo $fila_otros["marca_articulo"]?>"/>
        </strong> </div></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><strong>
          </strong>
          <label for="so">
            <div align="center"><strong>Modelo </strong></div>
        </label>
          <div align="center">
            <strong>
            <input type="text" name="modelo" id="modelo" value="<?php echo $fila_otros["modelo_articulo"]?>" />
        </strong> </div></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><div align="center"><strong>
        </strong></div>          <strong>
          <label for="cuenta">
            <div align="center">Numero de Serie</div>
          </label>
          <div align="center">
            <input type="text" name="serie" id="serie" value="<?php echo $fila_otros["num_serie_articulo"]?>" />
          </div>
        </strong></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><strong>
          </strong>
          <label for="ip">
            <div align="center"><strong>Observaciones</strong></div>
        </label>
          <div align="center">
            <strong>
            <input type="text" name="observaciones" id="observaciones" value="<?php echo $fila_otros["observaciones_articulo"]?>" />
        </strong> </div></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td><strong>
          </strong>
          <label for="equipo">
            <div align="center"><strong>EQUIPO<br />
                <select name="equipo" id="equipo">
                <option selected="" value="">[Seleccione un equipo]</option>
  <?php
      
//cuenta el numero de filas
      
while ($fila=mysql_fetch_array($rst_equipo))
             {
                if (
$fila["id_equipo"]==$fila_otros["id_equipo"])//si el id_equipo de la tabla equipo es = al id_equipo de la tabla otros_articulos
                
                
echo "<option selected='' value='"$fila["id_equipo"] ."'>".$fila["clave_inventario_equipo"] ."</option>";//aparece seleccionado el departamento 
                
                
else//si no
                
                
echo "<option value='"$fila["id_equipo"] ."'>".$fila["clave_inventario_equipo"] ."</option>";//no aparece seleccionado ninguna opcion 
              
}
  
//mysql_close($conexion);
  
?>
              </select>
            </strong> </div>
        </label></td>
      </tr>
    </table>
    <p>
      <input type="submit" name="guardar" id="guardar" value="Guardar" />
    </p>
    <p>
    <a href='javascript:history.go(-1)'>REGRESAR</a>&nbsp;</p>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
  </form>
</div>
</body>
</html>
y se me genera este error :
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:wampwwwEJEMPLOS-OKequipo-actualizar.php on line 13

entiendo k es un problema con la skonsulta :S pero se me hace mui raro pues en un script anterior use una konsulta mui parecida tomando datos de las mismas tabalas komo lo hago en este ejemplo.......y no m okasiono ningun problema....
ayudenme porfavoor ya intente kambiar la estructura de la konsulta i nada ...m sigue saliendo el mismo error....espero puedan ayudarme m urgee estee script

si desean k publik los dmas scripts lo hare kon gusto
gracias
  #2 (permalink)  
Antiguo 10/11/2010, 17:48
Avatar de Synkronice  
Fecha de Ingreso: octubre-2007
Ubicación: Madrid
Mensajes: 831
Antigüedad: 16 años, 6 meses
Puntos: 48
Respuesta: Problema actualizar datos y mostrarlos

Hola,

el error te lo está dando porque la función mysql_fetch_array() espera un recurso de conexión y le esta llegando un booleano (false seguramente), porque tu query tiene algún error de sintaxis.

Prueba a meter este código despues de tu query para poder investigar que error te devuelve mysql.

Código PHP:
if (!$rst_otros) {
    die(
'Invalid query: ' mysql_error());

Saludos!
__________________
El problema de nuestra época consiste en que sus hombres no quieren ser útiles sino importantes.

Winston Churchill
  #3 (permalink)  
Antiguo 10/11/2010, 22:13
 
Fecha de Ingreso: noviembre-2010
Mensajes: 5
Antigüedad: 13 años, 5 meses
Puntos: 0
Respuesta: Problema actualizar datos y mostrarlos

jejeje, ya di con el problema era un REQUEST que estaba haciendo:P
pero ahora tengo un problema mas X.X
el problema ahora es que como ya explicaba estaba haciendo una relacion entre 3 tablas de las cuales obtenia los datos igualando las ids de cada tabla con los id´s de la tabla intermedia..el inconveniente ahora es que necesito actualizar mis datos y al usar la consulta UPDATE no logro actualizar correctamente los datos
:S..... relize el siguiente codigo para insertar registros el cual me funciona muy bien...pero ahora no doy con la konsulta korrecta para poder actualizar los mismos..
el kodigo para insertar es el siguiente.
Código PHP:
$clave$_POST["clave"];
    
$tipo $_POST["tipo"];
    
$marca $_POST["marca"];
    
$modelo $_POST['modelo'];
    
$serie $_POST["serie"];
    
$observaciones $_POST["observaciones"];
    
$claveequipo $_POST["equipo"];
//consulta para insertar los registros
$consulta1 mysql_query("INSERT INTO otros_articulos (clave_inventario_articulo,tipo_articulo,marca_articulo,modelo_articulo,num_serie_articulo,observaciones_articulo) VALUES('$clave','$tipo','$marca','$modelo','$serie','$observaciones');",$conexion);

$obtenerid mysql_insert_id($conexion); //obtiene la id de la ultima consulta

$consulta2 mysql_query("INSERT INTO otros_articulos_has_equipo (id_otros,id_equipo) VALUES ('$obtenerid','$claveequipo');",$conexion);//se inserta el id de la consulta1 en el primer campo de la tabla otros_articulos_has_equipo


if (mysql_errno()!=0)//verificar si la consulta no es erronea
{
    echo 
"Error al insertar los datos"mysql_errno() . " - "mysql_error();
    
mysql_close ($conexion);
    
    }
    else{
        
mysql_close ($conexion);
        
header ("Location:listar_otros_articulos2.php");
    }
?> 
y para actualizar es el siguiente....

Código PHP:
$clave$_POST["clave"];
    
$tipo $_POST["tipo"];
    
$marca $_POST["marca"];
    
$modelo $_POST['modelo'];
    
$serie $_POST["serie"];
    
$observaciones $_POST["observaciones"];
    
$claveequipo $_POST["equipo"];
$consulta1=mysql_query("UPDATE otros_articulos SET clave_inventario_articulo='$clave', tipo_articulo='$tipo', marca_articulo='$marca', modelo_articulo='$modelo', num_serie_articulo='$serie', observaciones_articulo='$observaciones' WHERE clave_inventario_articulo="$_REQUEST["clavedeinventario"].";",$conexion);

$obtenerid mysql_insert_id($conexion); //obtiene la id de la ultima consulta
$consulta2=mysql_query("UPDATE otros_articulos_has_equipo SET id_equipo='$claveequipo',id_otros='$obtenerid'",$conexion);


//control de errores

if (mysql_errno()>0)
{
    echo 
"Error al guardar los datos"mysql_errno() . " - "mysql_error();
    
    }
    else{


        
header ("Location:listar_otros_articulos2.php");
//echo "Los cambios han sido guardados. <a href='listar.php'>REGRESAR AL LISTADO DE EQUIPOS</a>";
    
}

mysql_close ($conexion);

?> 
El problema es que con la konsulta k realizo al parecer si realiza los kambios solo k al insertar el id obtenido con la funcion mysql_insert_id ...en la tabla me lo almacena como 0...con lo kual la relacion entre las tablas no keda bien...
y si le kito a la konsulta2 k el kampo id_otros no reciba ningun valor, si m guarda los kambios pero el id_equipo se me repite en todos los registros k tengooo...:S

alguien puede ayudarm??
  #4 (permalink)  
Antiguo 10/11/2010, 23:10
 
Fecha de Ingreso: noviembre-2004
Ubicación: NULL
Mensajes: 652
Antigüedad: 19 años, 4 meses
Puntos: 6
Respuesta: Problema actualizar datos y mostrarlos

Prueba asi


Código PHP:
<?

if (isset($_POST['action']) && $_POST['action'] == 'add')
{
    
$clave $_POST['clave']; 
    
$tipo $_POST['tipo']; 
    
$marca $_POST['marca']; 
    
$modelo $_POST['modelo']; 
    
$serie $_POST['serie']; 
    
$observaciones $_POST['observacione']; 
    
$claveequipo $_POST['equipo']; 
$consulta1=mysql_query("UPDATE otros_articulos SET clave_inventario_articulo='$clave', tipo_articulo='$tipo', marca_articulo='$marca', modelo_articulo='$modelo', num_serie_articulo='$serie', observaciones_articulo='$observaciones' WHERE clave_inventario_articulo="$_REQUEST["clavedeinventario"].";",$conexion); 

$obtenerid mysql_insert_id($conexion); //obtiene la id de la ultima consulta 
$consulta2=mysql_query("UPDATE otros_articulos_has_equipo SET id_equipo='$claveequipo',id_otros='$obtenerid'",$conexion); 

        echo 
"RESPUESTA";
}
//control de errores 

if (mysql_errno()>0

    echo 
"Error al guardar los datos"mysql_errno() . " - "mysql_error(); 
     
    } 
    else{ 


        
header ("Location:listar_otros_articulos2.php"); 
//echo "Los cambios han sido guardados. <a href='listar.php'>REGRESAR AL LISTADO DE EQUIPOS</a>"; 
    


mysql_close ($conexion); 

?>

Etiquetas: Ninguno
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.