Ver Mensaje Individual
  #20 (permalink)  
Antiguo 10/01/2007, 05:55
Avatar de holahola
holahola
 
Fecha de Ingreso: mayo-2005
Ubicación: Móstoles - (Madrid)
Mensajes: 214
Antigüedad: 19 años, 6 meses
Puntos: 1
Re: Alguien sabe cual es el error que estoy teniendo

Basado en lo comentado en mi mensaje #18 de este hilo, te pongo aquí un ejemplo muy simple que te permitirá mantener una tabla, con las clásicas funciones de: alta, baja, modificación y consulta. Más abajo también te paso la estructura de la tabla.

El fichero se tiene que llamar mant_tabla.php ya que, como puedes comprobar, se llama así mismo en distintos puntos:


mant_tabla.php
Código PHP:
<?
$link 
mysql_connect('localhost','******','******');
mysql_select_db('tubasededatos',$link) or die('No pudo seleccionarse la BD.');

if (
$_POST)
{
    
$accion=$_POST["accion"];
    
$descripcion=$_POST["descripcion"];
    
$id=$_POST["id"];

    if (
$accion == 'e')
    {
        
//-modificar
        
$ssql="UPDATE mitabla SET descripcion = '".$descripcion."'  
        WHERE id="
.$id." ";
        
//echo '<br>El update es: '.$ssql;
        
mysql_query($ssql,$link) or die('Error en UPDATE mitabla'.mysql_error());
    } 
       elseif (
$accion == 'i')
    {
        
//-insertar una fila
        
$ssql "INSERT INTO mitabla (descripcion) 
            VALUES ('"
.$descripcion."') ";
        
//echo '<br>El update es: '.$ssql;
        
mysql_query($ssql,$link) or die('Error en INSERT mitabla'.mysql_error());
    } 
       else 
    {
        echo 
'Error accion en el POST: '.$accion;
        exit;
    }
}

echo 
'<h3>Listado de la Tabla</h3>';
echo 
"<a href=mant_tabla.php?accion=i>Insertar</a><br><br>";
$result mysql_query("SELECT * FROM mitabla ORDER BY id ",$link);
while(
$row mysql_fetch_array($result)) {

    
// Código para cada fila
    
echo "<a href=mant_tabla.php?id=$row[id]&accion=e>Editar</a> 
        <a href=mant_tabla.php?id=$row[id]&accion=b>Borrar</a> 
        $row[id] $row[descripcion]
        <br>"
;
}
mysql_free_result($result);

if (
$_GET)
{
    
$accion=$_GET['accion'];
    
//-accion 'e' es editar; 'b' es borrar; 'i' es insertar

    
if ($accion=='b')
    {
        
//-voy a borrar uno
        
$id=$_GET[id];
        
$result mysql_query("DELETE FROM mitabla WHERE id=$id ",$link);
        
mysql_close($link);
        
header("Location: mant_tabla.php");
        exit;
    } 
       elseif (
$accion=='e')
    {    
        
//-voy a editar y presentarlo en el formulario
        
$id=$_GET[id];
        
$result mysql_query("SELECT * FROM mitabla WHERE id=$id ",$link);
        
$row mysql_fetch_array($result);
        
$descripcion=$row["descripcion"];
        
mysql_close($link);
        
$formulario="Formulario para Modificar";
    }
       elseif (
$accion=='i')
    {
        
$descripcion="";
        
$formulario="Formulario para Insertar";
    }
       else 
    {
        echo 
'Error accion en el GET: '.$accion;
        exit;
    }

    
//-a continuación va el formulario que sirve tanto para insertar como para modificar
?>
    <hr>
    <h4><?echo $formulario;?></h4>
    <form name=f1 action="mant_tabla.php" method="post" />
        <br>Descripcion: <input type="text" name="descripcion" size="50" value="<?echo $descripcion?>" />
        <input type="hidden" name="id" value="<?echo $id?>" />
        <input type="hidden" name="accion" value="<?echo $accion?>" />
        <br><input type="submit" value=" Enviar " style="margin-top: 5ex;" />
    </form>
<?
}
?>
Y aquí tienes el diseño de la tabla. Sólo tiene 2 campos, pero el funcionamiento sería similar para los campos que quieras.

Cita:
CREATE TABLE `mitabla` (
`id` tinyint(11) unsigned NOT NULL auto_increment,
`descripcion` varchar(50) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM ;

--
-- Volcar la base de datos para la tabla `mitabla`
--

INSERT INTO `mitabla` VALUES (1, 'el primer registro');
Espero que te sirva, a tí, o a cualquier otro que lo necesite. Un saludo.