Foros del Web » Programando para Internet » PHP »

No me borra de la bbdd

Estas en el tema de No me borra de la bbdd en el foro de PHP en Foros del Web. hola tengo este codigo: Código PHP: mysql_query  ( 'DELETE FROM exterior WHERE listid=\''  .  $_POST [ 'id' ] .  '\'' ,  $link ); mysql_query  ( 'INSERT INTO exterior (id) VALUES(\''  .  $_POST [ 'id' ...
  #1 (permalink)  
Antiguo 24/09/2009, 15:06
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
No me borra de la bbdd

hola tengo este codigo:
Código 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>';
  } 
agregar en la base puedo, pero cuando destildo el checkbox me sigue dando activado

alguin q me de una manito

gracias
  #2 (permalink)  
Antiguo 24/09/2009, 15:32
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
Respuesta: No me borra de la bbdd

Compañero sea más detallado en su consulta.
  #3 (permalink)  
Antiguo 24/09/2009, 15:36
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 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>";
  } 
?>
  #4 (permalink)  
Antiguo 24/09/2009, 15:59
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: No me borra de la bbdd

si, no es mala la de separarlos, pero como dicho formulario esta en el alta del producto y en la edicion del producto, seria mas complicado por los pasos a realizar el usuario
quiero q el usuario pueda modificar en una sola pagina todos los datos

gracias
  #5 (permalink)  
Antiguo 25/09/2009, 18:27
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: No me borra de la bbdd

No lo estas entendiendo... ese codigo que te pase inicialmente seria un archivo PHP llamado eliminar.php..
dentro de tu pagina habria un boton o enlace tipo

<a href="eliminar.php?id=<? echo $row["id"] ?>"

si te fijas, la pagina eliminar.php que te envie tiene un codigo header("Location: listado_productos.php"); , es decir, que al eliminar, automaticamente volvera a la pagian que le indiques... no puedes hacerlo todo en una sola pagina, salvo que guardes tus consultas mysql_query dentro de variables distintas, y es mas engorroso y desordenado
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 16:06.