Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/09/2009, 15:36
Avatar de loncho_rojas
loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 3 meses
Puntos: 175
Respuesta: No me borra de la bbdd

no digo que este mal, pero imagino lo que necesitas hacer es que, si seleccionas un producto para insertar, lo haga, y si quieres eliminarla, lo puedas hacer... si ese es el caso, creo, y puedo estar equivocado, deberias tratar los elementos de manera separada, es decir..

crear un archivo de listado.php, donde traigas todas los elementos de tu base de datos.

tener un formulario para insertar.php

y tener otro archivo eliminar.php

porque segun vi, y como dije, puedo estar equivocado, las pirmeras QUERY al mysql son identicas, como sabe el procesador cual tiene que tomar? o sea, como sabe que va a insertar, o que tiene que eliminar? creo que el checked es buena opcion, pero te daras cuenta que el checked solo indica un elemento, no lo que va a hacer, yo que tu pondria un boton ELIMINAR o algo asi, e indicar con el checked cual o cuales eliminar, que te direccione a un archivo externo tipo eliminar.php, donde recibes el ID enviado para que sepa que eliminar.. tipo

archivo eliminar.php

Código PHP:
<?php 
   
include('../inc/conexion.php');
   
mysql_select_db($db_nombre_base_datos$link);
    
   if(isset(
$_POST['id']))
   {
       
$IdProductos stripslashes($_POST['id']); //guardo el id en una variable segura
        
mysql_query("delete from exterior where listid= $idProductos",$link); 
    
        
header("Location: listado_productos.php"); 
   }
?>
no se si se entiende la idea, creo que uno de los problemas es que el mecanismo no entiende porque hay 2 querys sin ninguna accion especificada..

tambien vi que hay problemas de comillas dobles y simples, pues creo que las estas tomando como lo mismo, y muchas veces los navegadores no lo interpertan asi.. es decir, en los ECHO, usas simples, y luego para escapar, de nuevo usas simples, y lo confunde al codigo.. por cuestiones de lectura puse dobles cuando se trata de los echos y simples cuando se tratan de cadenas..

espero te sirva, lo uno o lo otro

Código PHP:
<?php
mysql_query 
("DELETE FROM exterior WHERE listid=\'" $_POST['id'] . "\'"$link);
mysql_query ("INSERT INTO exterior (id) VALUES(\'" $_POST['id'] . "\')"$link);
        foreach (
$_POST as $id => $value)
        {
          if (
substr ($id02) == 'cp')
          {
            
mysql_query ("UPDATE exterior SET " $id "=\'" $value "\' WHERE id=\'" $_POST['id'] . "\' LIMIT 1"$link);
            continue;
          }
        }
        
        
        
$result mysql_query ("SELECT * FROM exterior ORDER BY campos ASC"$link);
  if (
mysql_num_rows ($result))
  {
    
$cnt mysql_num_rows ($result);
    
$num ceil ($cnt 3);
    echo 
"<table width=\'100%\' border=\'0\' cellpadding=\'0\' cellspacing=\'0\'><tr><td style=\'text-align:left;\' width=\'34%\' valign=\'top\'>";
    
$n 1;
    while (
$row mysql_fetch_array ($result))
    {
      echo 
"<div class=\'check\'>";
      echo 
"<input class=\'check\' type=\'checkbox\' id=\'cp" $row['id'] . "\' name=\'cp" $row['id'] . "\' value=\'1\'";
      if (
$_POST['cp' $row['id']])
      {
        echo 
" checked=\'checked\'";
      }

      echo 
"/>";
      echo 
"&nbsp;&nbsp;&nbsp;<label for=\'cp" $row['id'] . "\'>" $row['campos'] . "</label>";
      echo 
"</div>";
      if (
$n $num == 0)
      {
        if (
$n $cnt)
        {
          echo 
"</td><td style=\'text-align:left;\' width=\'33%\' valign=\'top\'>";
        }
      }

      ++
$n;
    }

    echo 
"</td></tr></table>";
  } 
?>