Foros del Web » Programando para Internet » PHP »

borrar registros MySQL & PHP

Estas en el tema de borrar registros MySQL & PHP en el foro de PHP en Foros del Web. wena wena, tengo un codigo php que intenta borrar varios registros a la vez, para ello hace una buskeda a traves de criterios que pueden ...
  #1 (permalink)  
Antiguo 22/02/2010, 13:26
Avatar de lolitashu  
Fecha de Ingreso: enero-2010
Ubicación: Chile / Santiago / Quilicura
Mensajes: 50
Antigüedad: 14 años, 2 meses
Puntos: 2
borrar registros MySQL & PHP

wena wena, tengo un codigo php que intenta borrar varios registros a la vez, para ello hace una buskeda a traves de criterios que pueden variar, yo okupo un switch, el problema es ke en la ultima parte del codigo, se corta, no imprime nada...
para esto okupo el siguiente codigo, pero no borra, alguien podria darme una ayuda?


Código PHP:
require ("../../conecta.php");
    
$op $_POST["op"];
    
$var $_POST["var"]; 
    
    switch (
$op)
    {
        case 
1:    $busca "Select * from producto where nombre like '%".$var."%'";
                break;
        case 
2:    $busca "Select * from producto where disenador = '".$var."'";
                break;
        case 
3:    $busca "Select * from producto where marca = '".$var."'";
                break;
    }
    echo 
$busca;
    
//aca se corta
    
$res =  mysql_query ($busca$dblink); 
    while (
$e mysql_fetch_array ($res) )
    {    
        
$idp =    $e["id"];
        if ( 
$idp == "on" )
        {    
            
$borra "delete from producto where id = '".$idp."'";
            echo 
$borra;
            
$elim mysql_query ($borra$dblink);
            if (!
$elim)
                echo 
"ERROR: No se pudo eliminar producto".$e["nombre"]."porque ".mysql_error();
            else
                echo 
"Borro correctamente";
        }
    } 
  #2 (permalink)  
Antiguo 22/02/2010, 13:29
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Respuesta: borrar registros MySQL & PHP

estas seguro que si pasa por el switch???, mmmm, estas poniendole el valor NAME al SELECT (Combo) ???, el formulario al que pertenece el SELECT (Combo) es de method='post' ???
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #3 (permalink)  
Antiguo 22/02/2010, 13:43
Avatar de lolitashu  
Fecha de Ingreso: enero-2010
Ubicación: Chile / Santiago / Quilicura
Mensajes: 50
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: borrar registros MySQL & PHP

1.- si si pasa, ya ke imprime la cosulta
Código PHP:
Ver original
  1. echo $busca;

2.- todos los select ke uso tienen name

3.-sip, es method=post

=/
  #4 (permalink)  
Antiguo 22/02/2010, 13:44
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Respuesta: borrar registros MySQL & PHP

mmmmm, por curiosidad puedes mostrar el formulario???
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #5 (permalink)  
Antiguo 22/02/2010, 13:46
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: borrar registros MySQL & PHP

Estas seguro que es "on" y no "ON"??

Aca te convendria preguntar asi
Código PHP:
$elim mysql_query ($borra$dblink);
            if (!
is_resource($elim))
                echo 
"ERROR: No se pudo eliminar producto".$e["nombre"]."porque ".mysql_error();
            else
                echo 
"Borro correctamente"
__________________
HV Studio
Diseño y desarrollo web
  #6 (permalink)  
Antiguo 22/02/2010, 13:49
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Pregunta Respuesta: borrar registros MySQL & PHP

usa mysql_fetch_assoc, en lugar de mysql_fetch_array, imprime la cantidad de registros encontrados???
Código PHP:
$res =  mysql_query ($busca$dblink);
$cantidad_registros mysql_num_rows($res);
echo 
$cantidad_registros
pdt: disculpa, no lei la parte que mencionas que SI imprime $busca
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #7 (permalink)  
Antiguo 22/02/2010, 13:51
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: borrar registros MySQL & PHP

Cita:
Iniciado por hector2c Ver Mensaje
usa mysql_fetch_assoc, en lugar de mysql_fetch_array...
Me podrias explicar el motivo por el cual siempre recomendas esto?
__________________
HV Studio
Diseño y desarrollo web
  #8 (permalink)  
Antiguo 22/02/2010, 13:52
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: borrar registros MySQL & PHP

Cita:
Iniciado por hector2c
usa mysql_fetch_assoc, en lugar de mysql_fetch_array
disculpa pero has dicho 2 veces lo mismo...
sabes que diferencia hay entre 1 y otro?

sabes que lo que le dices no tiene mucho q ver con el tema?
si estuviera tomando el resultado de esta forma
$row[1]
y estuviera usando mysql_fetch_assoc te entendería que le dijeras q lo cambie a mysql_fetch_array
pero de array a assoc ?
por que?
para que?
cual es el motivo?
que arreglaria con eso ?

explicadme por que no entiendo
__________________
More about me...
~ @rhyudek1
~ Github
  #9 (permalink)  
Antiguo 22/02/2010, 13:54
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Respuesta: borrar registros MySQL & PHP

bueno, aqui un enlace, aunque en google hay mas info, refiero al momento de recuperar los registros, diferencias entre $row[0] y $row['campo1'].
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #10 (permalink)  
Antiguo 22/02/2010, 13:56
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: borrar registros MySQL & PHP

entiendo perfectamente la diferencia entre 1 y otra.. lo q no entiendo es en q ayuda al caso?
__________________
More about me...
~ @rhyudek1
~ Github
  #11 (permalink)  
Antiguo 22/02/2010, 13:57
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Pregunta Respuesta: borrar registros MySQL & PHP

hay una condición, la cual varia segun el resultado obtenido en la consulta:

Código PHP:
while ($e mysql_fetch_array ($res) )
    {    
        
$idp =    $e["id"];
        if ( 
$idp == "on" 
y la obtiene como $row['campo'] y no como $row[0]
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #12 (permalink)  
Antiguo 22/02/2010, 13:59
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: borrar registros MySQL & PHP

Cita:
Iniciado por hector2c Ver Mensaje
hay una condición, la cual varia segun el resultado obtenido en la consulta:

Código PHP:
while ($e mysql_fetch_array ($res) )
    {    
        
$idp =    $e["id"];
        if ( 
$idp == "on" 
y la obtiene como $row['campo'] y no como $row[0]
y eso q tiene q ver con mysql_fetch_array o mysql_fetch_assoc...
la unica diferencia es la forma en q devuelven los datos
array devuelve numerico y associativo y assoc solo asociativo..
__________________
More about me...
~ @rhyudek1
~ Github
  #13 (permalink)  
Antiguo 22/02/2010, 13:59
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: borrar registros MySQL & PHP

Cita:
Iniciado por hector2c Ver Mensaje
hay una condición, la cual varia segun el resultado obtenido en la consulta:

Código PHP:
while ($e mysql_fetch_array ($res) )
    {    
        
$idp =    $e["id"];
        if ( 
$idp == "on" 
y la obtiene como $row['campo'] y no como $row[0]
Disculpa, pero no se si sabes que hacer esto

Código PHP:
while ($e mysql_fetch_array ($res) )
    {    
        echo 
$e['id']; 
Es lo mismo que hacer esto

Código PHP:
while ($e mysql_fetch_assoc ($res) )
    {    
        echo 
$e['id']; 
__________________
HV Studio
Diseño y desarrollo web
  #14 (permalink)  
Antiguo 22/02/2010, 14:00
Avatar de hector2c  
Fecha de Ingreso: noviembre-2007
Ubicación: Perú - Tacna
Mensajes: 979
Antigüedad: 16 años, 4 meses
Puntos: 25
Respuesta: borrar registros MySQL & PHP

tambien se que es lo mismo hacer un $_GET['campo'] que $_REQUEST['campo'], pero, no estan creadas para eso... cierto??? simples bueno habitos de desarrollo...
__________________
blog: hector2c.wordpress.com
email: [email protected]
  #15 (permalink)  
Antiguo 22/02/2010, 14:07
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: borrar registros MySQL & PHP

Es curioso pero si te fijas en el manual dice lo siguiente:

http://php.net/manual/en/function.mysql-fetch-assoc.php

Cita:
Returns an associative array that corresponds to the fetched row and moves the internal data pointer ahead. mysql_fetch_assoc() is equivalent to calling mysql_fetch_array() with MYSQL_ASSOC for the optional second parameter. It only returns an associative array.
Lo cual, por si no entendes del todo ingles se traduce (solo la parte roja)

Cita:
mysql_fetch_assoc() es equivalente a usar la funcion mysql_fetch_array() con el segundo parametro opcional MYSQL_ASSOC
Y si te fijas en el manual en la explicacion de la funcion mysql_fetch_array() dice que

Cita:
Returns an array of strings that corresponds to the fetched row, or FALSE if there are no more rows. The type of returned array depends on how result_type is defined. By using MYSQL_BOTH (default), you'll get an array with both associative and number indices. Using MYSQL_ASSOC, you only get associative indices (as mysql_fetch_assoc() works), using MYSQL_NUM, you only get number indices (as mysql_fetch_row() works).
Y esa parte se traduce a

Cita:
MYSQL_BOTH (por defecto)
O sea, usar una u otra, en este caso, da lo mismo...
No son buenos habitos o no, es simple, es lo mismo, no viene al caso...
__________________
HV Studio
Diseño y desarrollo web

Última edición por jackson666; 22/02/2010 a las 14:13
  #16 (permalink)  
Antiguo 22/02/2010, 14:08
Avatar de lolitashu  
Fecha de Ingreso: enero-2010
Ubicación: Chile / Santiago / Quilicura
Mensajes: 50
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: borrar registros MySQL & PHP

Hice los cambios que me recomendaron i quedo asi:
Código PHP:
Ver original
  1. require ("../../conecta.php");
  2.     $op = $_POST["op"];
  3.     $var = $_POST["var"];
  4.    
  5.     switch ($op)
  6.     {
  7.         case 1: $busca = "Select * from producto where nombre like '%".$var."%'";
  8.                 break;
  9.         case 2: $busca = "Select * from producto where disenador = '".$var."'";
  10.                 break;
  11.         case 3: $busca = "Select * from producto where marca = '".$var."'";
  12.                 break;
  13.     }
  14.     echo $busca;
  15.     $res =  mysql_query ($busca, $dblink);
  16.     $cantr = mysql_num_rows($res);
  17.     echo '<br>'.$cantr.'<br>';
  18.     //aca se corta
  19.     while ($e = mysql_fetch_array ($res) )
  20.     {  
  21.         $idp =  $e["id"];
  22.         if ( $idp == "ON" )
  23.         {  
  24.             $borra = "delete from producto where id = '".$idp."'";
  25.             echo $borra;
  26.             $elim = mysql_query ($borra, $dblink);
  27.             //if (!$elim)
  28.             if (!is_resource($elim))
  29.                 echo "ERROR: No se pudo eliminar producto".$e["nombre"]."porque ".mysql_error();
  30.             else
  31.                 echo "Borro correctamente";
  32.         }
  33.     }
  34.     echo '<br>';
  35.     echo mysql_error();
  36.     mysql_close ($dblink);

aunque sigue sin eliminar =/
  #17 (permalink)  
Antiguo 22/02/2010, 14:10
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: borrar registros MySQL & PHP

Yo no te dije que cambies "on" por "ON"... Te pregunte si estas seguro que ese campo contiene ese valor, ya sea minuscula, mayuscula o lo que sea...
Es evidente que no se esta cumpliendo el condicional
__________________
HV Studio
Diseño y desarrollo web
  #18 (permalink)  
Antiguo 22/02/2010, 14:11
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: borrar registros MySQL & PHP

si quieres debuguear eso solo pone al final

Código PHP:
Ver original
  1. if ( $idp == "ON" ){  
  2.     $borra = "delete from producto where id = '".$idp."'";
  3.     echo $borra;
  4.     $elim = mysql_query ($borra, $dblink);
  5.     if (!is_resource($elim))
  6.         echo "ERROR: No se pudo eliminar producto".$e["nombre"]."porque ".mysql_error();
  7.     else
  8.         echo "Borro correctamente";
  9.     }else{
  10.         echo "nunca entro en la condicional";
  11. }
__________________
More about me...
~ @rhyudek1
~ Github
  #19 (permalink)  
Antiguo 22/02/2010, 14:17
Avatar de lolitashu  
Fecha de Ingreso: enero-2010
Ubicación: Chile / Santiago / Quilicura
Mensajes: 50
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: borrar registros MySQL & PHP

mmmm
no se si olvide decir ke pregunta por "on" ya ke idp es un check que tiene el nombre del id

<input type="check" name="'.$idp.'">

si esta chekeado, lo borra, sino no...

gracias por la ayuda

ah soi mujer
  #20 (permalink)  
Antiguo 22/02/2010, 14:23
Avatar de jackson666  
Fecha de Ingreso: noviembre-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 1.971
Antigüedad: 14 años, 5 meses
Puntos: 65
Respuesta: borrar registros MySQL & PHP

Cita:
Iniciado por lolitashu Ver Mensaje
ah soi mujer
Menos mal que aclaraste! jajajaja


En cuanto a la ultima aclaracion... En tu codigo dice en una linea

Código PHP:
$idp =  $e["id"]; 
Como es que $idp es un checkbox???
__________________
HV Studio
Diseño y desarrollo web
  #21 (permalink)  
Antiguo 22/02/2010, 14:25
Avatar de lolitashu  
Fecha de Ingreso: enero-2010
Ubicación: Chile / Santiago / Quilicura
Mensajes: 50
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: borrar registros MySQL & PHP

hidek1, hice el cambio ke me recomendaste i al parecer nunca entra en la kondicional
jajajajja
ya ke el codigo ke pregue en sus echo imprime esto:
Código:
Select * from producto where marca = '18'
8
nunca entro en la condicionalnunca entro en la condicionalnunca entro en la condicionalnunca entro en la condicionalnunca entro en la condicionalnunca entro en la condicionalnunca entro en la condicionalnunca entro en la condicional
8 veces, ocea ke por lo menos hace el ciclo jajja
ok, = no se mui bn ke significa eso, ocea ke ninguno esta chekeado?, estoi preguntado mal?

gracias!

Última edición por lolitashu; 23/02/2010 a las 05:24
  #22 (permalink)  
Antiguo 22/02/2010, 14:32
Avatar de lolitashu  
Fecha de Ingreso: enero-2010
Ubicación: Chile / Santiago / Quilicura
Mensajes: 50
Antigüedad: 14 años, 2 meses
Puntos: 2
Respuesta: borrar registros MySQL & PHP

ia explikare toa la kosa:

1.-mi codigo s ekompone de 3 codigos, en el primero tengo 3 campos tipo text
cada uno kon un radio al principio, ocea ke hago una buskeda vanzada, despues de elegir uno de los 3 criterios por los cuales buskare escribo la marca i doi enviar

2.-llega el segundo codigo, recibo la variables, i gerero la consulta con un switch dependiendo del la variable $op se pueden hacer 3 consultas, la hace e imprime todas las coincidencias, cada una con un chek al inicio, elijo cuantos kiera eliminar i doi enviar.

3.-borra todo a traves de un ciclo, para hacer la consulta envio dos hidden en el kodigo anterior, $op, para hacer la conulta denuevo, y $var, que es la variable en si.
u aki caballeros es donde se corta! taran!

gracias

Etiquetas: borrar, mysql, registros
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 01:03.