Foros del Web » Programando para Internet » PHP »

borrar datos de la db

Estas en el tema de borrar datos de la db en el foro de PHP en Foros del Web. Alguien podria darme alguna idea con esto , necesito borrar los datos solamente en el caso que esten correctos . todo me funciona pero no ...
  #1 (permalink)  
Antiguo 03/01/2009, 09:20
 
Fecha de Ingreso: diciembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
borrar datos de la db

Alguien podria darme alguna idea con esto , necesito borrar los datos solamente en el caso que esten correctos .

todo me funciona pero no me los borra de la db.
Me da error
Su codigo 6 digitos.Codigo no valido.
Warning: mysql_query() [http://www.mysql.com/doc]: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1 in /xxxxxx/xxx.php on line 26



Alguna otra idea...

Código:
<?php

$mysql_host="xxxxxxxx";
$mysql_user="xxxxx";
$mysql_password="xxxxxxxx";
$mysql_db = "xxxxxxxx";


$conn = mysql_connect("$mysql_host","$mysql_user","$mysql_password")or die("Could not connect : " . mysql_error());
mysql_select_db("$mysql_db",$conn) or die("Select database failed");


$var=@$_REQUEST['nombre']."'";
$query= mysql_query("Select * from jos_call where code = '".$var,@$conn);

if (mysql_num_rows($query) == 0 )  {
echo 'Su codigo 6 digitos.Codigo no valido.';
}else{
echo '  Codigo correcto! ' ;
}

{ 
mysql_query("delete from jos_call where code='$var'");
} 

mysql_close($conn); 
?>
  #2 (permalink)  
Antiguo 03/01/2009, 09:23
 
Fecha de Ingreso: marzo-2007
Mensajes: 9
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: borrar datos de la db

Prueba con:
mysql_query("delete from jos_call where code='".$var."'");

Suerte.
  #3 (permalink)  
Antiguo 03/01/2009, 10:04
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: borrar datos de la db

serxoker no es necesario las comillas dobles hacen que se interprete el valor el "problema" esta en la asignacion de valor de la variable $var

la variable var tiene valor request + comilla

Asi que el delete debe ser

mysql_query("delete from jos_call where code='".$var);
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #4 (permalink)  
Antiguo 03/01/2009, 15:10
Avatar de eddwinpaz  
Fecha de Ingreso: noviembre-2007
Ubicación: Merida , Venezuela
Mensajes: 1.066
Antigüedad: 16 años, 6 meses
Puntos: 25
Respuesta: borrar datos de la db

Delete from 'tabla' where tabla='campo'
__________________
O nos hacemos miserables o nos hacemos fuertes , la cantidad de trabajo es la misma.
  #5 (permalink)  
Antiguo 03/01/2009, 15:33
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: borrar datos de la db

Fijate en estas lineas:
Código PHP:
$var=@$_REQUEST['nombre']."'";
$querymysql_query("Select * from jos_call where code = '".$var,@$conn); 
A la variable $var le agregas el (') par evitarte ponerlo en el query, eso esta mal.
Por eso luego al hacer:
mysql_query("delete from jos_call where code='$var'");
Te muestra un error.

Código PHP:
$var=@$_REQUEST['nombre'];
$querymysql_query("Select * from jos_call where code = '".$var."',@$conn); 
Asi tiene que funcionar sin problemas.

Y siempre asegurate de usar addslashes para escapar las comillas y evitar injeccion SQL.
  #6 (permalink)  
Antiguo 03/01/2009, 16:09
 
Fecha de Ingreso: agosto-2007
Mensajes: 101
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: borrar datos de la db

Código PHP:
$var=@$_REQUEST['nombre'];
$querymysql_query("Select * from jos_call where code = '".$var."'",@$conn); 
Se te olvido cerrar las comillas ;)
  #7 (permalink)  
Antiguo 05/01/2009, 10:44
 
Fecha de Ingreso: diciembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: borrar datos de la db

Cita:
Iniciado por Avatar810 Ver Mensaje
serxoker no es necesario las comillas dobles hacen que se interprete el valor el "problema" esta en la asignacion de valor de la variable $var

la variable var tiene valor request + comilla

Asi que el delete debe ser

mysql_query("delete from jos_call where code='".$var);
Hola he implementado tu codigo y me ha causado un problema el dato ha sido borrado pero tambien me ha borrado todos los otros campos en la tabla que raro si solamente se busco el campo de code ..... Alguna idea.
  #8 (permalink)  
Antiguo 05/01/2009, 11:28
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: borrar datos de la db

Prueba este codigo (es lo mismo solo que con unos pequeños cambios) quedo comentarisado la ejecucion del delete para que no te altere tu tabla mas de lo que ya esta.

Este codigo lo que hace es mostrarte en pantalla lo que manda a ejecutar el MySQL.

<?php

$mysql_host="xxxxxxxx";
$mysql_user="xxxxx";
$mysql_password="xxxxxxxx";
$mysql_db = "xxxxxxxx";


$conn = mysql_connect("$mysql_host","$mysql_user","$mysql_ password")or die("Could not connect : " . mysql_error());
mysql_select_db("$mysql_db",$conn) or die("Select database failed");


$var=@$_REQUEST['nombre']."'";
$qry="Select * from jos_call where code = '".$var;
echo $qry.";<br>";
$query= mysql_query($qry,@$conn);

if (mysql_num_rows($query) == 0 ) {
echo 'Su codigo 6 digitos.Codigo no valido.';
}else{
echo ' Codigo correcto! ' ;
}

{
$qry2="delete from jos_call where code='".$var;
echo $qry2.";<br>";
//mysql_query($qry2);
}

mysql_close($conn);
?>

Tal vez leo mal pero quiero entender esto

Cita:
Iniciado por maxbox7 Ver Mensaje
el dato ha sido borrado pero tambien me ha borrado todos los otros campos en la tabla
Supongo qu ete refieres a otros registros de la tabla... pq un delete lo que hace es eliminar todo el registro no solo el campo que le indicas en el where.

Si quieres "borrar" un solo campo del registro necesitas hacerle un UPDATE y asignarle un nuevo valor por ejemplo
"UPDATE jos_call SET code='' WHERE code='".$var
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810

Última edición por Avatar810; 05/01/2009 a las 11:33
  #9 (permalink)  
Antiguo 05/01/2009, 12:07
 
Fecha de Ingreso: diciembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: borrar datos de la db

Cita:
Iniciado por Avatar810 Ver Mensaje
Tal vez leo mal pero quiero entender esto


Supongo qu ete refieres a otros registros de la tabla... pq un delete lo que hace es eliminar todo el registro no solo el campo que le indicas en el where.

Si quieres "borrar" un solo campo del registro necesitas hacerle un UPDATE y asignarle un nuevo valor por ejemplo
"UPDATE jos_call SET code='' WHERE code='".$var

Un monton de gracias ahora si me quedo claro como el agua me funciono perfecto con el update no sabia que con delete me borraba todo el registro apesar de indicarle con where el campo.

He intentado hacer esto tambien pero no me resulta , trasladar el resultado a otra tabla



Código:
{ 
mysql_query("insert into jos_call1  (code) VALUES (''".$var')"); 
mysql_query("UPDATE jos_call SET code='' WHERE code=  '".$var  );
} 

mysql_close($conn); 
?>
  #10 (permalink)  
Antiguo 05/01/2009, 12:25
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: borrar datos de la db

Tienes error en las comillas del insert, debe ser

mysql_query("insert into jos_call1 (code) VALUES ('".$var.")");

Ademas que no se si tu estructura sea compatible con ese insert, solo metes un campo, normalmente deberias tener un campo llave (o es autoincrement??).

En el update tambien tienes error, es
mysql_query("UPDATE jos_call SET code='' WHERE code='".$var.")";

Te aconsejo tomes la costumbre de utilizar la estructura que te pase, donde defines el query, lo mandas a mostrar a pantalla y despues lo ejecutas, asi ya podras ver si esta correctamente escrito.

Suerte
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #11 (permalink)  
Antiguo 05/01/2009, 12:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: borrar datos de la db

El insert me da problema quizas sea otra la forma de realizarlo , en el primer campo de code esta el registro 123456
cuando el usuario escribe en el textfield 123456 busca en la tabla y dice codigo correcto luego deberia insertarlo en la tabla nueva y luego borrarlo de la primera tabla .

Lo que falla es que en insert realiza por cada numero que se escribe un registro es decir
en la tabla jos_call1 me aparece lo siguiente code
1
12
123
1234
12345
123456

En la cual lo que necesito es solamente code
123456

Que sintax deberia usar en este caso....
  #12 (permalink)  
Antiguo 05/01/2009, 12:57
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: borrar datos de la db

perdona pero eso que escribes no tiene logica, un instruccion de mysql no puede hacer eso (bueno hasta donde yo se...)

pon un bloque de tu codigo, eso parece que tu instruccion insert estuviera desntro de algun ciclo...

Pero además de eso, la estructura de la tabla jos_call1 es la misma que de jos_call ??
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #13 (permalink)  
Antiguo 05/01/2009, 13:27
 
Fecha de Ingreso: diciembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: borrar datos de la db

Si la estructura es la misma.

Yo creo que lo que esta pasando es en $var=@$_REQUEST['nombre']."'";
por cada numero que se escriba en el textfield realiza una query hasta que encuentra los 6 digitos en la tabla por eso al insert le pasa lo mismo me ejecuta una query para cada numero.
Lo que necesitaria en ese caso cuando los 6 digitos que el usuario escriibe sean
iguales a los de tabla definirlo como un solo resultado.

Ahora como lo hago
trate tambien con esto pero nada.....


{
mysql_query("insert into jos_call1 (code) VALUES (".$query")");
mysql_query("UPDATE jos_call SET code='' WHERE code='".$var.")";
}



Código:
$conn = mysql_connect("$mysql_host","$mysql_user","$mysql_password")or die("Could not connect : " . mysql_error());
mysql_select_db("$mysql_db",$conn) or die("Select database failed");


$var=@$_REQUEST['nombre']."'";
$query= mysql_query("Select * from jos_call where code = '".$var,@$conn);

if (mysql_num_rows($query) == 0 )  {
echo 'Su codigo 6 digitos.Codigo no valido.';
}else{
echo '  Codigo correcto!   ' ;
}
{ 
mysql_query("insert into jos_call1 (code) VALUES ('".$var.")"); 
mysql_query("UPDATE jos_call SET code='' WHERE code='".$var.")";
} 

mysql_close($conn); 
?>
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 05:18.