Foros del Web » Programando para Internet » PHP »

No puedo eliminar registros de mi BD

Estas en el tema de No puedo eliminar registros de mi BD en el foro de PHP en Foros del Web. Hola que tal, quiero pedir de su ayuda, tengo un problema que no me permite eliminar registros de mi tabla, mi codigo es el siguiente: ...
  #1 (permalink)  
Antiguo 29/03/2010, 15:04
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
No puedo eliminar registros de mi BD

Hola que tal, quiero pedir de su ayuda, tengo un problema que no me permite eliminar registros de mi tabla, mi codigo es el siguiente:

<?
//Conexion con la base
mysql_connect("localhost","usuario","clave");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("medicina");
//Creamos la sentencia SQL y la ejecutamos
$sSQL="DELETE FROM digito WHERE id_digito='$id_digito'";
mysql_db_query($sSQL);
?>

No se donde pueda estar el error, no me elimina los registros.
  #2 (permalink)  
Antiguo 29/03/2010, 15:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No puedo eliminar registros de mi BD

procura usar mysql_query() para ejecutar tus consultas...

además, intenta depurarlas de la siguiente forma:
Código PHP:
mysql_query($sSQL) or die(mysql_error()); 
y como siempre, por favor... lee el manual antes de!! ;)
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 29/03/2010, 16:20
Avatar de jcxnet  
Fecha de Ingreso: octubre-2005
Ubicación: Perú
Mensajes: 784
Antigüedad: 18 años, 6 meses
Puntos: 56
Respuesta: No puedo eliminar registros de mi BD

no será que el tipo de dato de id_digito es numérico ? en ese caso sería:
Código PHP:
$sSQL="DELETE FROM digito WHERE id_digito=$id_digito"
__________________
►I'm a devil on the run ♂
Jcxnet.com
*Keep It Simple **
  #4 (permalink)  
Antiguo 29/03/2010, 16:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Respuesta: No puedo eliminar registros de mi BD

el dato de id_digito si es numerico he quitado las comillas simples como me indicas pero tampoco funciono.
  #5 (permalink)  
Antiguo 29/03/2010, 16:58
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: No puedo eliminar registros de mi BD

Cita:
Iniciado por erik83 Ver Mensaje
el dato de id_digito si es numerico he quitado las comillas simples como me indicas pero tampoco funciono.
y si has depurado tu consulta como te comentaba??
también ya cambiaste la función??

¿has leído el manual??
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #6 (permalink)  
Antiguo 29/03/2010, 16:59
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: No puedo eliminar registros de mi BD

Donde le asignas valor a $id_digito?

Ademas
Cita:
Iniciado por pateketrueke Ver Mensaje
procura usar mysql_query() para ejecutar tus consultas...

además, intenta depurarlas de la siguiente forma:
Código PHP:
mysql_query($sSQL) or die(mysql_error()); 
y como siempre, por favor... lee el manual antes de!! ;)
  #7 (permalink)  
Antiguo 29/03/2010, 17:12
 
Fecha de Ingreso: marzo-2010
Ubicación: Lima, Perú
Mensajes: 136
Antigüedad: 14 años, 1 mes
Puntos: 2
Respuesta: No puedo eliminar registros de mi BD

Leer el manual:

- mysql_query()
- depuración

# Espero que no suene grosero
  #8 (permalink)  
Antiguo 29/03/2010, 17:45
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: No puedo eliminar registros de mi BD

primero que todo existe la tabla ?
segundo existe el ID que estas eliminando?
tercero seguro que estas conectado ?

la columna-> id_digito es Autoincrement - Primary key ?

usa esto
Código PHP:
<?
//Conexion con la base
mysql_connect("localhost","usuario","clave");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("medicina");
//Creamos la sentencia SQL y la ejecutamos
$sSQL="DELETE FROM digito WHERE id_digito='$id_digito'";
mysql_query($sSQL) or die mysql_errno();
?>
te recomiendo leer : http://ve2.php.net/manual/en/functio...l-db-query.php

la funcion mysql_db_query() es vieja y ahora se usa mysql_query.

deberia de funcionarte o almenos darte el error de la consulta con el codigo que esta arriba modificado. saludos..
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #9 (permalink)  
Antiguo 29/03/2010, 18:16
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Gracias a todos, estoy leyendo los manuales que me referenciaron, les comento que si existe la tabla y el ID q se esta eliminando, id_digito es PRIMARY.

mysql_query($sSQL) or die mysql_errno(); me arroja error.

Espero pueda con esto, les doy las gracias a todos y sigo atento a sus comentarios.

el error que me da es el siguiente:

Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\medicina\admin\registrarse_organiz adores.php on line 1692

Última edición por GatorV; 30/03/2010 a las 14:29
  #10 (permalink)  
Antiguo 29/03/2010, 18:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: No puedo eliminar registros de mi BD

¿Y cuál es la linea 1692?
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #11 (permalink)  
Antiguo 29/03/2010, 18:32
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
lo que estoy haciendo es un formulario de registro para un congreso, la tabla id_digito contiene un numero que es asignado a cada uno de los que se registran, de manera que tiene que ser eliminado para que no se vuelva asignar a otro usuario.

Los datos son almacenados en otra tabla, en las pruebas que hice se guardan bien los datos incluidos el valor de id_digito, pero lo que no hace es eliminarlo.

<?
//Conexion con la base
mysql_connect("localhost","usuario","clave");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("medicina");
//Creamos la sentencia SQL y la ejecutamos
$sSQL="DELETE FROM digito WHERE id_digito='$id_digito'";
mysql_query($sSQL) or die mysql_errno();
?> Esta es la linea 1692

Última edición por GatorV; 30/03/2010 a las 14:30
  #12 (permalink)  
Antiguo 29/03/2010, 18:34
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: No puedo eliminar registros de mi BD

Tienes que usar paréntesis con el die().
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #13 (permalink)  
Antiguo 29/03/2010, 18:38
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Respuesta: No puedo eliminar registros de mi BD

<?
//Conexion con la base
mysql_connect("localhost","usuario","clave");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("medicina");
//Creamos la sentencia SQL y la ejecutamos
$sSQL="DELETE FROM digito WHERE id_digito='$id_digito'";
mysql_query($sSQL) or die(mysql_error());
?>

lo puse asi y ya no marco error, voy a probar haber si ya elimina.
  #14 (permalink)  
Antiguo 29/03/2010, 18:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: No puedo eliminar registros de mi BD

Verifica que $id_digito este tomando el id que corresponde y que el usuario que estés usando tenga los permisos para poder borrar. Hazle un var_dump
Código PHP:
Ver original
  1. var_dump($id_digito);
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #15 (permalink)  
Antiguo 29/03/2010, 18:47
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: No puedo eliminar registros de mi BD

Cita:
Iniciado por abimaelrc Ver Mensaje
Tienes que usar paréntesis con el die().
jajaj se me escapo ese detalle XD
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #16 (permalink)  
Antiguo 29/03/2010, 18:51
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
var_dump($id_digito); me arroja como resultado NULL

el usuario tiene todos los privilegios habilitados.

Última edición por GatorV; 30/03/2010 a las 14:30
  #17 (permalink)  
Antiguo 29/03/2010, 19:32
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 5 meses
Puntos: 25
Respuesta: No puedo eliminar registros de mi BD

colocastes la clave y el usuario de manera correcta ?

cambia mysql_errno por mysql_error() y dinos que te sale...
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #18 (permalink)  
Antiguo 29/03/2010, 19:40
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: No puedo eliminar registros de mi BD

El var_dump te lo está indicando, no tienes ningún valor asignado a la variable $id_digito. Verifica donde se debe ver la información de la variable y verifica que esté ingresando correctamente el valor (que según var_dump, no es así).
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #19 (permalink)  
Antiguo 29/03/2010, 19:57
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Respuesta: No puedo eliminar registros de mi BD

No me marca ningun error con mysql_error()
  #20 (permalink)  
Antiguo 29/03/2010, 20:03
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años
Puntos: 2
Respuesta: No puedo eliminar registros de mi BD

var_dump te dijo que la variable es NULL, o sea, no tiene valor. (Como decir vacio :P). Si la traes por session, post o get, ahi ya estaria bueno que nos tires un cacho de codigo como para mirar, porque la sentencia sql asi como ya te aconsejaron los chicos esta bien por si misma.. ahora hay que ver que datos le llegan asi hace lo que tiene que hacer..

Revisate bien como traes el valor de $id_usuario porque en algun lugar se te pierde.

Saludos!
  #21 (permalink)  
Antiguo 29/03/2010, 20:26
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Respuesta: No puedo eliminar registros de mi BD

Muchas gracias.

tengo este codigo:

<?
//Conexion con la base
mysql_connect("localhost","usuario","clave");

//Creamos la sentencia SQL y la ejecutamos
echo '<FORM METHOD="POST" ACTION="registrarse_organizadores.php">';
$sSQL="Select id_digito From digito Order By RAND() LIMIT 1";
$result=mysql_db_query("medicina",$sSQL);

echo '<select name="id_digito" style="font-size: 9px; font-color: #000000; width: 80px;">';
//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{



echo'<option>'.$row["id_digito"];

}
?>


En la tabala digito tenemos los numeros de matricula que identificaran a cada uno de los asistentes que se registra al congreso, entonces al momento de llenar el formulario se jala uno de los registros de esa tabla y se guarda en otra tabla junto con el resto de los datos que se llenan en el formulario. Los datos se guardan bien incluido el valor id_digito de la nueva tabla, pero en la tabla digito no se elimina el numero que se utilizo para ese registro. Y la idea es que se elimine para que no se vuelva asignar ese valor a otro registro.

Espero me haya dado a entender, disculpen.
  #22 (permalink)  
Antiguo 29/03/2010, 20:29
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: No puedo eliminar registros de mi BD

Haz leído los mensajes que te indicamos que el valor $id_digito te sale como NULL, esto quiere decir que no tiene ningún valor, verifica si se está almacenando correctamente. Si es así que se almacena correctamente entonces haz prueba en diferentes lugares del código para que veas donde es que se pierde el valor. Además en el código que haz indicando no mencionas la variable $id_digito anteriormente declarada.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #23 (permalink)  
Antiguo 29/03/2010, 20:49
 
Fecha de Ingreso: abril-2007
Ubicación: Tandil, Bs As, Argentina
Mensajes: 106
Antigüedad: 17 años
Puntos: 2
Respuesta: No puedo eliminar registros de mi BD

Suponiendo al logica de que la saca del get o post del select.. entonces..

El problema seria este:

Código PHP:
<? 
//Conexion con la base
mysql_connect("localhost","usuario","clave");

//Creamos la sentencia SQL y la ejecutamos
echo '<FORM METHOD="POST" ACTION="registrarse_organizadores.php">';
$sSQL="Select id_digito From digito Order By RAND() LIMIT 1";
$result=mysql_db_query("medicina",$sSQL);

echo 
'<select name="id_digito" style="font-size: 9px; font-color: #000000; width: 80px;">';
//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{

$id $row["id_digito"];

echo 
"<option value='$id'>$id</option>";

}
?>
Mandalo asi y contanos
  #24 (permalink)  
Antiguo 29/03/2010, 20:59
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
<?php

if(isset($_POST['Submit'])) {
$text1 = escapar(trim($_POST['text1']));
$text2 = escapar(trim($_POST['text2']));
$text3 = escapar(trim($_POST['text3']));
if(empty($text1) || empty($text2)) {
echo "<script>alert('Debe completar todos los campos (* Obligatorios)'); document.location.href='acceder_organizadores.php' ;</script>\n";
exit();
}
$database = new basededatos ($_host, $_user, $_password, $_db);
$query = "SELECT * FROM organizadores WHERE usuario='".($text1)."' and passwd='".($text2)."' and usuario_estado='".($text3)."' ";
$result = $database->query($query);
$num_coincidentes = $database->numregistros($result);
if($num_coincidentes == 0) {
echo '<script>alert(\'Usuario y/o Contraseña No Valida o NO eres Organizador\'); document.location.href=\'acceder_organizadores.php \';</script>';
exit();
} elseif($num_coincidentes == 1) {
while ($row = mysql_fetch_array($database->_cursor)) {


$nombre_real = $row['nombre'];
$apellido = $row['apellido'];
$usuario = $row['usuario'];
$passwd = $row['passwd'];
$direccion = $row['direccion'];
$colonia = $row['colonia'];
$cp = $row['cp'];
$ciudad = $row['ciudad'];
$estado = $row['estado'];
$pais = $row['pais'];
$tel_lada = $row['tel_lada'];
$tel_movil = $row['tel_movil'];
$email = $row['email'];

$select2 = $row['select2'];
$select3 = $row['select3'];
$carrera = $row['carrera'];
$semestre = $row['semestre'];
$matricula = $row['matricula'];
$congreso = $row['congreso'];
$hospedaje = $row['hospedaje'];
$fiestas = $row['fiestas'];
$equipo_traduccion = $row['equipo_traduccion'];
$transporte = $row['transporte'];
$zona1 = $row['zona1'];
$zona2 = $row['zona2'];
$zona3 = $row['zona3'];
$zona4 = $row['zona4'];
$zona5 = $row['zona5'];
$total_paquete = $row['total_paquete'];
$fecha = $row['fecha'];


$id_digito = $row['id_digito'];
$organizador = $row['organizador'];
$codigo = $row['codigo'];
$codigo_estado = $row['codigo_estado'];

$idRegistro = $row['idRegistro'];
$usuario_estado = $row['usuario_estado'];
$status_sesion_personal = $row['status_sesion_personal'];
$contrasena = $row['contrasena'];
$ip = $row['ip'];
$certificacion = $row['certificacion'];
$descuentos = $row['descuentos'];
$select1 = $row['select1'];
$vuelos = $row['vuelos'];
$tours = $row['tours'];
$carnet_vip = $row['carnet_vip'];

//y asi para cada campo
}
//igual para todos los campos
$_SESSION['user_registrado'] = 'true';

$_SESSION['nombre_real'] = $nombre_real;
$_SESSION['apellido'] = $apellido;
$_SESSION['usuario'] = $usuario;
$_SESSION['passwd'] = $passwd;
$_SESSION['direccion'] = $direccion;
$_SESSION['colonia'] = $colonia;
$_SESSION['cp'] = $cp;
$_SESSION['ciudad'] = $ciudad;
$_SESSION['estado'] = $estado;
$_SESSION['pais'] = $pais;
$_SESSION['tel_lada'] = $tel_lada;
$_SESSION['tel_movil'] = $tel_movil;
$_SESSION['email'] = $email;

$_SESSION['select2'] = $select2;
$_SESSION['select3'] = $select3;
$_SESSION['carrera'] = $carrera;
$_SESSION['semestre'] = $semestre;
$_SESSION['matricula'] = $matricula;
$_SESSION['congreso'] = $congreso;
$_SESSION['hospedaje'] = $hospedaje;
$_SESSION['fiestas'] = $fiestas;
$_SESSION['equipo_traduccion'] = $equipo_traduccion;
$_SESSION['transporte'] = $transporte;
$_SESSION['zona1'] = $zona1;
$_SESSION['zona2'] = $zona2;
$_SESSION['zona3'] = $zona3;
$_SESSION['zona4'] = $zona4;
$_SESSION['zona5'] = $zona5;
$_SESSION['total_paquete'] = $total_paquete;
$_SESSION['fecha'] = $fecha;
$_SESSION['id_digito'] = $id_digito; $_SESSION['organizador'] = $organizador;
$_SESSION['codigo'] = $codigo;
$_SESSION['codigo_estado'] = $codigo_estado;
$_SESSION['idRegistro'] = $idRegistro;
$_SESSION['usuario_estado'] = $usuario_estado;
$_SESSION['status_sesion_personal'] = $status_sesion_personal;
$_SESSION['contrasena'] = $contrasena;
$_SESSION['ip'] = $ip;
$_SESSION['certificacion'] = $certificacion;
$_SESSION['select1'] = $select1;
$_SESSION['vuelos'] = $vuelos;
$_SESSION['descuentos'] = $descuentos;
$_SESSION['tours'] = $tours;
$_SESSION['carnet_vip'] = $carnet_vip;
session_write_close();

echo '<script language="javascript">window.open("datosusuarios_o rganizadores.php","_self"); </script>';


} else {
echo '<script>alert(\'Usuario o Contrasena No Valida\'); document.location.href=\'acceder_organizadores.php \';</script>';
exit();
}
}
?>

Cita:
Iniciado por Megcapkill Ver Mensaje
Suponiendo al logica de que la saca del get o post del select.. entonces..

El problema seria este:

Código PHP:
<? 
//Conexion con la base
mysql_connect("localhost","usuario","clave");

//Creamos la sentencia SQL y la ejecutamos
echo '<FORM METHOD="POST" ACTION="registrarse_organizadores.php">';
$sSQL="Select id_digito From digito Order By RAND() LIMIT 1";
$result=mysql_db_query("medicina",$sSQL);

echo 
'<select name="id_digito" style="font-size: 9px; font-color: #000000; width: 80px;">';
//Generamos el menu desplegable
while ($row=mysql_fetch_array($result))
{

$id $row["id_digito"];

echo 
"<option value='$id'>$id</option>";

}
?>
Mandalo asi y contanos
Ya lo puse asi, sigue guardando el valor de id_digito de la tabla digito, pero una vez utilizado no lo elimina.

Última edición por GatorV; 30/03/2010 a las 14:32
  #25 (permalink)  
Antiguo 30/03/2010, 16:09
 
Fecha de Ingreso: marzo-2010
Mensajes: 22
Antigüedad: 14 años
Puntos: 0
Respuesta: No puedo eliminar registros de mi BD

Cita:
Iniciado por lobo_php Ver Mensaje
Ya ví el problema, cambia esta línea:

Código PHP:
echo '<option value="'.$row["id_digito"].'">'.$row["id_digito"].'</option>'
Por eso llegaba vacío, por que no tenía el value, ahora, eso en el formulario, en el script donde hace la eliminación, antes de la consulta debes inicializar la variable:

Código PHP:
<?php
//Conexion con la base
mysql_connect("localhost","usuario","clave");
//selección de la base de datos con la que vamos a trabajar
mysql_select_db("medicina");
//Creamos la sentencia SQL y la ejecutamos
$id_digito $_POST['id_digito'];
$sSQL="DELETE FROM digito WHERE id_digito='".$id_digito."'";
mysql_query($sSQL) or die(mysql_errno());
?>
Espero que con esto este resuelto.

Saludos.
Muchisimas gracias, ya funciono. Hice los cambios que me indicaste y funciono. Gracias a todos por su amable y generosa ayuda.

Saludos

Etiquetas: bd, eliminar, 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:54.