Foros del Web » Programando para Internet » PHP »

Problema con DROP TABLE (MySQL)

Estas en el tema de Problema con DROP TABLE (MySQL) en el foro de PHP en Foros del Web. Muy buenas a todos. No consigo que un script php de una página web borre una tabla. No me da ningún error pero no la ...
  #1 (permalink)  
Antiguo 21/04/2007, 09:53
 
Fecha de Ingreso: febrero-2002
Mensajes: 59
Antigüedad: 22 años, 2 meses
Puntos: 0
Problema con DROP TABLE (MySQL)

Muy buenas a todos.

No consigo que un script php de una página web borre una tabla. No me da ningún error pero no la borra.

Pongo un fragmento del script:

Código PHP:
$sql "SELECT id FROM usuarios WHERE grupo='$borrado' AND status='alumno'";
$rs mysql_query($sql);
$filas mysql_num_rows($rs);
for (
$i=0$i<$filas$i++) {
    
$id mysql_result($rs$i0);
    
$sql2 "DROP TABLE 'curso2_usuario$id'";
    if(
$rs2 mysql_query($sql2))
        print(
"Datos del usuario $id eliminados con éxito<br>");
    else print (
"Error al eliminar los datos del usuario $id<br>");
}
$sql "DELETE FROM usuarios WHERE grupo='$borrado' AND status='alumno'";
$rs mysql_query($sql); 
El problema es que el DROP TABLE 'nombre_tabla' no hace nada, no borra la tabla, y en pantalla aparece el segundo print "Error...".

No es problema de la variable $id, ya que he probado a poner el nombre de la tabla directamente. Tampoco de poner o no las comillas simples, no funciona de ningún modo.

A ver si alguien me ilumina y me dice qué hago mal.

Muchas gracias.
__________________
Gatorrollo
http://www.diegoml.com
  #2 (permalink)  
Antiguo 21/04/2007, 10:54
Avatar de Althor  
Fecha de Ingreso: mayo-2006
Mensajes: 12
Antigüedad: 18 años
Puntos: 0
Re: Problema con DROP TABLE (MySQL)

Creo que es por esto:

$sql2 = "DROP TABLE 'curso2_usuario$id'";

Eso está entre comillas dobles, eso quiere decir que las simples se envían tal cual, entonces la query que recibe el gestor de la bbdd es

lo que sea... DROP TABLE 'curso2_usuariotal' cuando debería ser

DROP TABLE curso2_usuariotal

prueba así ->
$sql2 = "DROP TABLE curso2_usuario$id";
  #3 (permalink)  
Antiguo 21/04/2007, 11:20
Avatar de eits  
Fecha de Ingreso: junio-2005
Ubicación: valladolid, yucatán
Mensajes: 1.655
Antigüedad: 18 años, 10 meses
Puntos: 88
Re: Problema con DROP TABLE (MySQL)

hay algo que no me queda claro, cuando un usuario comienza un curso, por ejemplo el curso2, ¿se crea una nueva tabla en la base de datos solo para ese usuario?
es decir, si entran 30 usuarios se crearán 30 tablas con la misma informacion solo que con nombres de tabla diferentes, como por ejemplo curso2_usuario1 para el primero, curso2_usuario2 para el segundo, ..... curso2_usuario30, ¿es así?

si es de esa manera, creo que el diseño de tu base de datos esta mal.

si pudieras dar un poco mas de información, tal vez sea mas fácil de ayudar, aunque yo tambien creo que son las comillas simples las del problema.

saludos.
__________________
El amor es la locura mas lucida que tiene el hombre.- Andres Henestrosa
la tristeza no existe, solo es... la ausencia de la felicidad.
  #4 (permalink)  
Antiguo 21/04/2007, 13:56
 
Fecha de Ingreso: febrero-2002
Mensajes: 59
Antigüedad: 22 años, 2 meses
Puntos: 0
Re: Problema con DROP TABLE (MySQL)

Muchas gracias a los dos, efectivamente era lo de las comillas simples, pero juraría que ya lo había intentado sin comillas... En fin, hay veces que me bloqueo y no veo el error teniéndolo delante de mis narices.

Respecto a las tablas, así es, se crea una tabla para cada usuario, pero lógicamente no son todas iguales, cada tabla almacena datos personalizados.

De nuevo gracias por ayudarme.
__________________
Gatorrollo
http://www.diegoml.com
  #5 (permalink)  
Antiguo 22/04/2007, 02:08
Avatar de Althor  
Fecha de Ingreso: mayo-2006
Mensajes: 12
Antigüedad: 18 años
Puntos: 0
Re: Problema con DROP TABLE (MySQL)

Ten en cuenta que entre comillas en SQL solament van los strings (char, varchar, text, longtext), por si te vuelve a pasar algún día, cosa que al trabajar con php no es nada raro.

Sobre el diseño de tu bbdd si es así como la tienes montada lo suyo sería tener un tabla y en cada fila los datos personalizados de cada alumno.
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 21:20.