Foros del Web » Programando para Internet » PHP »

Borra linea de tabla

Estas en el tema de Borra linea de tabla en el foro de PHP en Foros del Web. buenas chicos, tengo un problema, que no se como solucionar ya. tengo un script que deberia eliminarme una linea de una tabla en la que ...
  #1 (permalink)  
Antiguo 08/11/2008, 16:02
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 0
Borra linea de tabla

buenas chicos, tengo un problema, que no se como solucionar ya.

tengo un script que deberia eliminarme una linea de una tabla en la que uno de los campos es igual a una variable, y la cuestion es que desde el phpmyadmin me funciona, preguntandome si estoy seguro de eliminar esa linea, pero desde la pagina web que ejecuta la orden no me lo hace.

es esto:


$delete = "DELETE * FROM '$tabla' WHERE '$tabla'.ntabla = '$ntabla'";
mysql_query($delete);

$sql="DROP TABLE `$ntabla`";
mysql_query($sql);
mysql_close();

echo $ntabla;
echo " eliminad@ con éxito de ";
echo $tabla;


en concreto el $delete.
desde la web no me da ningun error de sql ni nada, pero cuando miro en phpmyadmin la tabla, no me ha borrado la linea y si la tabla que tiene el nombre de la linea, pq guardo los nombres de la tablas en una tabla general, y kiero que a la vez que me borra una tabla de las pequeñas, me borre la linea de la general.
  #2 (permalink)  
Antiguo 08/11/2008, 16:15
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Borra linea de tabla

Hola

no te da error de MySQL, por que no pones el control de errores.

mysql_query($delete) or die (mysql_error());

Y para comprobar si va bien la consulta hazle un echo

echo $delete = "DELETE * FROM '$tabla' WHERE '$tabla'.ntabla = '$ntabla'";
para ver si te imprime lo que quieres que haga la consulta.

Un saludo
  #3 (permalink)  
Antiguo 08/11/2008, 16:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 0
voy a provar, haber que me dice.

muchas gracias

me pone esto:

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 '* FROM 'machos' WHERE ntabla = 'BUBU'' at line 1

entiendo que me dice que tengo un error de sintaxsis, pero no entiendo cual puede ser.

Última edición por GatorV; 08/11/2008 a las 19:44
  #4 (permalink)  
Antiguo 08/11/2008, 16:28
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Borra linea de tabla

Hola

mira a ver si es este el error, que puede ser

echo $delete = "DELETE * FROM '$tabla' WHERE '$tabla'.ntabla = '$ntabla'";

Mira de dejarlo a si:

echo $delete = "DELETE * FROM '$tabla' WHERE '$tabla.ntabla' = '$ntabla'";

Un saludo
  #5 (permalink)  
Antiguo 08/11/2008, 16:32
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Borra linea de tabla

le habia quitado lo de '$tabla', por que es una tonteria, ya que desde el myadmin me va de las 2 maneras, y me dice lo mismo.

lo de meterlo entre comillas, era otra posibilidad, pero tampoco va
  #6 (permalink)  
Antiguo 08/11/2008, 16:33
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 16 años, 1 mes
Puntos: 8
Respuesta: Borra linea de tabla

Juraría que te sobra el asterisco.

Un saludo
  #7 (permalink)  
Antiguo 08/11/2008, 16:35
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 0
y entonces como borro toda la linea??

voy a provar

nada, no funciona sin el *

Última edición por GatorV; 08/11/2008 a las 19:43
  #8 (permalink)  
Antiguo 08/11/2008, 16:38
Avatar de Deschamps  
Fecha de Ingreso: octubre-2008
Mensajes: 257
Antigüedad: 16 años, 1 mes
Puntos: 8
Del manual de MySQL 5... y hasta donde se ve, esto no es una transacción multi-tabla.

Un saludo.

Código:
$sql="DROP TABLE `$ntabla`";
Eso que se ve ahí son backticks?
Quizás deberías poner comillas simples convencionales.

Última edición por GatorV; 08/11/2008 a las 19:43
  #9 (permalink)  
Antiguo 08/11/2008, 16:46
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 0
eso no da problema, me elimina esa tabla perfectamente. el problema esta en la linea que borra todo el conjunto en la tabla general

$delete

estoy provando de mirar que script crea el phpmyadmin para eliminar una linea, y hace lo siguiente:

DELETE FROM `machos` WHERE CONVERT(`machos`.`ntabla` USING utf8) = 'THOR' LIMIT 1

no entiendo el USING utf8, que es eso?


pero poniendo eso si me hace lo que quiero, gracias por las sugerencias, pero na, a veces las cosas son caprichosas XD

un saludo!

Última edición por GatorV; 08/11/2008 a las 19:44
  #10 (permalink)  
Antiguo 08/11/2008, 17:58
 
Fecha de Ingreso: febrero-2008
Ubicación: Madrid
Mensajes: 50
Antigüedad: 16 años, 9 meses
Puntos: 3
Respuesta: Borra linea de tabla

hola , esto lo resolverias con un id para cada linea

EJ :

$tabla = "3" ;
$nombre_tabla = "machos" ;
$todas = "todas_las_tablas" ;

$sql = "DELETE FROM " . $todas . "Where id=' ".$tabla. " ' " ;

y el otro sql seria

$sql = "DROP TABLE " . $nombre_tabla ;

bueno esto es un poco de especulacion , no he probado a ver si funciona correcto , ya me diras

saludos...
  #11 (permalink)  
Antiguo 09/11/2008, 11:13
 
Fecha de Ingreso: septiembre-2008
Mensajes: 28
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Borra linea de tabla

con lo que puse arriba me funciona.
lo del id lo tengo puesto, pero le puse el auto_increment, y creo q a sido un error hacerlo, ya que cuando me borra una linea, luego nunca acabo sabiendo por que numero va y demas, bueno podria saberlo pero no tengo ganas de ponerme a programarlo.

pero vamos, que si da el error con el nombre, que lo pasa correctamente, tambien lo daria con el id, pq a fin de cuentas no deja de ser un campo suelto.
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 12:08.