Foros del Web » Programando para Internet » PHP »

Y esto como se ejecuta?

Estas en el tema de Y esto como se ejecuta? en el foro de PHP en Foros del Web. Esto se ejecutaría así o necesitaría mysql_query... Ando desde la tablet por eso no puedo comprobarlo. Pero esa es mi duda. si asi mismo iria... ...
  #1 (permalink)  
Antiguo 06/03/2014, 16:34
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Y esto como se ejecuta?

Esto se ejecutaría así o necesitaría mysql_query...

Ando desde la tablet por eso no puedo comprobarlo. Pero esa es mi duda. si asi mismo iria... el script
Código MySQL:
Ver original
  1. #Deletes items from non-existant rooms
  2. DELETE FROM items WHERE  
  3. (items.room_id >= 0 AND
  4. items.room_id NOT IN
  5. (SELECT id FROM rooms where rooms.id = items.room_id));

Cita:
Editado: Código de programación no permitido en foros de Bases de Datos.

Última edición por gnzsoloyo; 06/03/2014 a las 16:44
  #2 (permalink)  
Antiguo 06/03/2014, 16:45
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Y esto como se ejecuta?

Programación es OFF TOPIC en los foros de Bases de Datos.
¿Cuál es exactamente tu duda, en lo que se refiera exclusivamente a SQL?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 08/03/2014, 05:17
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Y esto como se ejecuta?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Programación es OFF TOPIC en los foros de Bases de Datos.
¿Cuál es exactamente tu duda, en lo que se refiera exclusivamente a SQL?
El codigo de hay arriba esta en un archivo php con un include a config.php Pero no funciona no ejecuta la consulta
  #4 (permalink)  
Antiguo 08/03/2014, 05:20
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Y esto como se ejecuta?

No estás respondiendo la pregunta.
¿Qué no se ejecuta? ¿El PHP o el SQL?

En lo que se refiere a PHP, es OFF TOPIC en este foro. Pero por otro lado, ¿te has tomado el trabajo de verificar si la query devuelve algún error de MySQL a PHP?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 08/03/2014, 05:50
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Y esto como se ejecuta?

Cita:
Iniciado por gnzsoloyo Ver Mensaje
No estás respondiendo la pregunta.
¿Qué no se ejecuta? ¿El PHP o el SQL?

En lo que se refiere a PHP, es OFF TOPIC en este foro. Pero por otro lado, ¿te has tomado el trabajo de verificar si la query devuelve algún error de MySQL a PHP?
Se queda todo en blanco y no muestra nada.
  #6 (permalink)  
Antiguo 08/03/2014, 05:51
 
Fecha de Ingreso: diciembre-2012
Ubicación: Murcia
Mensajes: 329
Antigüedad: 11 años, 4 meses
Puntos: 4
Respuesta: Y esto como se ejecuta?

Código PHP:
Ver original
  1. <?php
  2. include('./kernel/config.php');
  3.  
  4. #Deletes achievements from non-existant users
  5. DELETE FROM user_achievements WHERE
  6. user_achievements.user_id NOT IN
  7. (SELECT id FROM users where users.id =user_achievements.user_id);
  8.  
  9. #Deletes effects from non-existant users
  10. DELETE FROM user_effects WHERE
  11. user_effects.user_id NOT IN
  12. (SELECT id FROM users where users.id =user_effects.user_id);
  13.  
  14. #Deletes badges from non-existant users
  15. DELETE FROM user_badges WHERE
  16. user_badges.user_id NOT IN
  17. (SELECT id FROM users where users.id =user_badges.user_id);
  18.  
  19. #Deletes favorites from non-existant users
  20. DELETE FROM user_favorites WHERE
  21. user_favorites.user_id NOT IN
  22. (SELECT id FROM users where users.id = user_favorites.user_id);
  23.  
  24. #Deletes favorites from non-existant rooms
  25. DELETE FROM user_favorites WHERE
  26. user_favorites.room_id NOT IN
  27. (SELECT id FROM rooms where rooms.id = user_favorites.room_id);
  28.  
  29. #Deletes info from non-existant users
  30. DELETE FROM user_info WHERE
  31. user_info.user_id NOT IN
  32. (SELECT id FROM users where users.id = user_info.user_id);
  33.  
  34. #Deletes pets from non-existant users
  35. DELETE FROM user_pets WHERE
  36. user_pets.user_id NOT IN
  37. (SELECT id FROM users where users.id = user_pets.user_id);
  38.  
  39. #Deletes pets from non-existant rooms
  40. DELETE FROM user_pets WHERE
  41. user_pets.room_id NOT IN
  42. (SELECT id FROM rooms where rooms.id = user_pets.room_id);
  43.  
  44. #Deletes non-existant presents
  45. DELETE FROM user_presents WHERE
  46. user_presents.item_id NOT IN
  47. (SELECT id FROM items where items.id = user_presents.item_id);
  48.  
  49. #Deletes quests from non-existant users
  50. DELETE FROM user_quests WHERE
  51. user_quests.user_id NOT IN
  52. (SELECT id FROM users where users.id = user_quests.user_id);
  53.  
  54. #Deletes roomvisits from non-existant users
  55. DELETE FROM user_roomvisits WHERE
  56. user_roomvisits.user_id NOT IN
  57. (SELECT id FROM users where users.id = user_roomvisits.user_id);
  58.  
  59. #Deletes roomvisits from non-existant rooms
  60. DELETE FROM user_roomvisits WHERE
  61. user_roomvisits.room_id NOT IN
  62. (SELECT id FROM rooms where rooms.id = user_roomvisits.room_id);
  63.  
  64. #Deletes stats from non-existant users
  65. DELETE FROM user_stats WHERE
  66. user_stats.id NOT IN
  67. (SELECT id FROM users where users.id = user_stats.id);
  68.  
  69. #Deletes subscriptions from non-existant users
  70. DELETE FROM user_subscriptions WHERE
  71. user_subscriptions.user_id NOT IN
  72. (SELECT id FROM users where users.id = user_subscriptions.user_id);
  73.  
  74. #Deletes tags from non-existant users
  75. DELETE FROM user_tags WHERE
  76. user_tags.user_id NOT IN
  77. (SELECT id FROM users where users.id = user_tags.user_id);
  78.  
  79. #Deletes wardrobe from non-existant users
  80. DELETE FROM user_wardrobe WHERE
  81. user_wardrobe.user_id NOT IN
  82. (SELECT id FROM users where users.id = user_wardrobe.user_id);
  83.  
  84. #Deletes non-existant wired_items
  85. DELETE FROM wired_items WHERE
  86. wired_items.item_id NOT IN
  87. (SELECT id FROM items where items.id = wired_items.item_id);
  88.  
  89. #Deletes non-existant teleports(1)
  90. DELETE FROM tele_links WHERE
  91. tele_links.tele_one_id NOT IN
  92. (SELECT id FROM items where items.id = tele_links.tele_one_id);
  93.  
  94. #Deletes non-existant teleports(2)
  95. DELETE FROM tele_links WHERE
  96. tele_links.tele_two_id NOT IN
  97. (SELECT id FROM items where items.id = tele_links.tele_two_id);
  98.  
  99. #Deletes bans from non-existant users
  100. DELETE FROM bans WHERE  
  101. (bans.bantype = 'user' AND
  102. bans.`value` NOT IN
  103. (SELECT username FROM users where users.username = bans.`value`));
  104.  
  105. #Deletes chatlogs from non-existant users
  106. DELETE FROM chatlogs WHERE
  107. chatlogs.user_id NOT IN
  108. (SELECT id FROM users where users.id = chatlogs.user_id);
  109.  
  110. #Deletes chatlogs from non-existant rooms
  111. DELETE FROM chatlogs WHERE
  112. chatlogs.room_id NOT IN
  113. (SELECT id FROM rooms where rooms.id = chatlogs.room_id);
  114.  
  115. #Deletes rights from non-existant users
  116. DELETE FROM room_rights WHERE
  117. room_rights.user_id NOT IN
  118. (SELECT id FROM users where users.id = room_rights.user_id);
  119.  
  120. #Deletes rights from non-existant rooms
  121. DELETE FROM room_rights WHERE
  122. room_rights.room_id NOT IN
  123. (SELECT id FROM rooms where rooms.id = room_rights.room_id);
  124.  
  125. #Deletes bots from non-existant rooms
  126. DELETE FROM bots WHERE
  127. bots.room_id NOT IN
  128. (SELECT id FROM rooms where rooms.id = bots.room_id);
  129.  
  130. #Deletes responses from non-existant bots
  131. DELETE FROM bots_responses WHERE
  132. bots_responses.bot_id NOT IN
  133. (SELECT id FROM bots where bots.id = bots_responses.bot_id);
  134.  
  135. #Deletes speech from non-existant bots
  136. DELETE FROM bots_speech WHERE
  137. bots_speech.bot_id NOT IN
  138. (SELECT id FROM bots where bots.id = bots_speech.bot_id);
  139.  
  140. #Deletes non-existant moodlights
  141. DELETE FROM room_items_moodlight WHERE
  142. room_items_moodlight.item_id NOT IN
  143. (SELECT id FROM items where items.id = room_items_moodlight.item_id);
  144.  
  145. #Deletes messenger_friendships from non-existant users
  146. DELETE FROM messenger_friendships WHERE
  147. user_one_id NOT IN
  148. (SELECT id FROM users where users.id =user_one_id);
  149. DELETE FROM messenger_friendships WHERE
  150. user_two_id NOT IN
  151. (SELECT id FROM users where users.id =user_two_id);
  152.  
  153. #Deletes user_ignores from non-existant users
  154. DELETE FROM user_ignores WHERE
  155. user_id NOT IN
  156. (SELECT id FROM users where users.id =user_id);
  157. DELETE FROM user_ignores WHERE
  158. ignore_id NOT IN
  159. (SELECT id FROM users where users.id =ignore_id);
  160.  
  161. #Deletes items from non-existant rooms
  162. DELETE FROM items WHERE  
  163. (items.room_id >= 0 AND
  164. items.room_id NOT IN
  165. (SELECT id FROM rooms where rooms.id = items.room_id));
  166.  
  167. #Deletes items from non-existant users
  168. DELETE FROM items WHERE
  169. items.user_id NOT IN
  170. (SELECT id FROM users where users.id =items.user_id);
  171.  
  172. #Deletes rooms from non-existant users
  173. DELETE FROM rooms WHERE
  174. (rooms.roomtype = 'private' AND
  175. rooms.`owner` NOT IN
  176. (SELECT username FROM users where users.username = rooms.`owner`));  
  177.  
  178. ?>
  #7 (permalink)  
Antiguo 08/03/2014, 10:32
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Y esto como se ejecuta?

Cita:
Iniciado por Jose789 Ver Mensaje
Se queda todo en blanco y no muestra nada.
Eso no es tema de MySQL, sino de PHP. MySQL no maneja páginas web, ni formularios en web. Es un servidor de Bases de DAtos, y no interactúa directamente con el cliente web.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #8 (permalink)  
Antiguo 08/03/2014, 10:36
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Y esto como se ejecuta?

Cita:
Iniciado por Jose789 Ver Mensaje
Código PHP:
Ver original
  1. <?php
  2. include('./kernel/config.php');
  3.  
  4. #Deletes achievements from non-existant users
  5. DELETE FROM user_achievements WHERE
  6. user_achievements.user_id NOT IN
  7. (SELECT id FROM users where users.id =user_achievements.user_id);
  8.  
  9. #Deletes effects from non-existant users
  10. DELETE FROM user_effects WHERE
  11. user_effects.user_id NOT IN
  12. (SELECT id FROM users where users.id =user_effects.user_id);
  13.  
  14. #Deletes badges from non-existant users
  15. DELETE FROM user_badges WHERE
  16. user_badges.user_id NOT IN
  17. (SELECT id FROM users where users.id =user_badges.user_id);
  18.  
  19. #Deletes favorites from non-existant users
  20. DELETE FROM user_favorites WHERE
  21. user_favorites.user_id NOT IN
  22. (SELECT id FROM users where users.id = user_favorites.user_id);
  23.  
  24. #Deletes favorites from non-existant rooms
  25. DELETE FROM user_favorites WHERE
  26. user_favorites.room_id NOT IN
  27. (SELECT id FROM rooms where rooms.id = user_favorites.room_id);
  28.  
  29. #Deletes info from non-existant users
  30. DELETE FROM user_info WHERE
  31. user_info.user_id NOT IN
  32. (SELECT id FROM users where users.id = user_info.user_id);
  33.  
  34. #Deletes pets from non-existant users
  35. DELETE FROM user_pets WHERE
  36. user_pets.user_id NOT IN
  37. (SELECT id FROM users where users.id = user_pets.user_id);
  38.  
  39. #Deletes pets from non-existant rooms
  40. DELETE FROM user_pets WHERE
  41. user_pets.room_id NOT IN
  42. (SELECT id FROM rooms where rooms.id = user_pets.room_id);
  43.  
  44. #Deletes non-existant presents
  45. DELETE FROM user_presents WHERE
  46. user_presents.item_id NOT IN
  47. (SELECT id FROM items where items.id = user_presents.item_id);
  48.  
  49. #Deletes quests from non-existant users
  50. DELETE FROM user_quests WHERE
  51. user_quests.user_id NOT IN
  52. (SELECT id FROM users where users.id = user_quests.user_id);
  53.  
  54. #Deletes roomvisits from non-existant users
  55. DELETE FROM user_roomvisits WHERE
  56. user_roomvisits.user_id NOT IN
  57. (SELECT id FROM users where users.id = user_roomvisits.user_id);
  58.  
  59. #Deletes roomvisits from non-existant rooms
  60. DELETE FROM user_roomvisits WHERE
  61. user_roomvisits.room_id NOT IN
  62. (SELECT id FROM rooms where rooms.id = user_roomvisits.room_id);
  63.  
  64. #Deletes stats from non-existant users
  65. DELETE FROM user_stats WHERE
  66. user_stats.id NOT IN
  67. (SELECT id FROM users where users.id = user_stats.id);
  68.  
  69. #Deletes subscriptions from non-existant users
  70. DELETE FROM user_subscriptions WHERE
  71. user_subscriptions.user_id NOT IN
  72. (SELECT id FROM users where users.id = user_subscriptions.user_id);
  73.  
  74. #Deletes tags from non-existant users
  75. DELETE FROM user_tags WHERE
  76. user_tags.user_id NOT IN
  77. (SELECT id FROM users where users.id = user_tags.user_id);
  78.  
  79. #Deletes wardrobe from non-existant users
  80. DELETE FROM user_wardrobe WHERE
  81. user_wardrobe.user_id NOT IN
  82. (SELECT id FROM users where users.id = user_wardrobe.user_id);
  83.  
  84. #Deletes non-existant wired_items
  85. DELETE FROM wired_items WHERE
  86. wired_items.item_id NOT IN
  87. (SELECT id FROM items where items.id = wired_items.item_id);
  88.  
  89. #Deletes non-existant teleports(1)
  90. DELETE FROM tele_links WHERE
  91. tele_links.tele_one_id NOT IN
  92. (SELECT id FROM items where items.id = tele_links.tele_one_id);
  93.  
  94. #Deletes non-existant teleports(2)
  95. DELETE FROM tele_links WHERE
  96. tele_links.tele_two_id NOT IN
  97. (SELECT id FROM items where items.id = tele_links.tele_two_id);
  98.  
  99. #Deletes bans from non-existant users
  100. DELETE FROM bans WHERE  
  101. (bans.bantype = 'user' AND
  102. bans.`value` NOT IN
  103. (SELECT username FROM users where users.username = bans.`value`));
  104.  
  105. #Deletes chatlogs from non-existant users
  106. DELETE FROM chatlogs WHERE
  107. chatlogs.user_id NOT IN
  108. (SELECT id FROM users where users.id = chatlogs.user_id);
  109.  
  110. #Deletes chatlogs from non-existant rooms
  111. DELETE FROM chatlogs WHERE
  112. chatlogs.room_id NOT IN
  113. (SELECT id FROM rooms where rooms.id = chatlogs.room_id);
  114.  
  115. #Deletes rights from non-existant users
  116. DELETE FROM room_rights WHERE
  117. room_rights.user_id NOT IN
  118. (SELECT id FROM users where users.id = room_rights.user_id);
  119.  
  120. #Deletes rights from non-existant rooms
  121. DELETE FROM room_rights WHERE
  122. room_rights.room_id NOT IN
  123. (SELECT id FROM rooms where rooms.id = room_rights.room_id);
  124.  
  125. #Deletes bots from non-existant rooms
  126. DELETE FROM bots WHERE
  127. bots.room_id NOT IN
  128. (SELECT id FROM rooms where rooms.id = bots.room_id);
  129.  
  130. #Deletes responses from non-existant bots
  131. DELETE FROM bots_responses WHERE
  132. bots_responses.bot_id NOT IN
  133. (SELECT id FROM bots where bots.id = bots_responses.bot_id);
  134.  
  135. #Deletes speech from non-existant bots
  136. DELETE FROM bots_speech WHERE
  137. bots_speech.bot_id NOT IN
  138. (SELECT id FROM bots where bots.id = bots_speech.bot_id);
  139.  
  140. #Deletes non-existant moodlights
  141. DELETE FROM room_items_moodlight WHERE
  142. room_items_moodlight.item_id NOT IN
  143. (SELECT id FROM items where items.id = room_items_moodlight.item_id);
  144.  
  145. #Deletes messenger_friendships from non-existant users
  146. DELETE FROM messenger_friendships WHERE
  147. user_one_id NOT IN
  148. (SELECT id FROM users where users.id =user_one_id);
  149. DELETE FROM messenger_friendships WHERE
  150. user_two_id NOT IN
  151. (SELECT id FROM users where users.id =user_two_id);
  152.  
  153. #Deletes user_ignores from non-existant users
  154. DELETE FROM user_ignores WHERE
  155. user_id NOT IN
  156. (SELECT id FROM users where users.id =user_id);
  157. DELETE FROM user_ignores WHERE
  158. ignore_id NOT IN
  159. (SELECT id FROM users where users.id =ignore_id);
  160.  
  161. #Deletes items from non-existant rooms
  162. DELETE FROM items WHERE  
  163. (items.room_id >= 0 AND
  164. items.room_id NOT IN
  165. (SELECT id FROM rooms where rooms.id = items.room_id));
  166.  
  167. #Deletes items from non-existant users
  168. DELETE FROM items WHERE
  169. items.user_id NOT IN
  170. (SELECT id FROM users where users.id =items.user_id);
  171.  
  172. #Deletes rooms from non-existant users
  173. DELETE FROM rooms WHERE
  174. (rooms.roomtype = 'private' AND
  175. rooms.`owner` NOT IN
  176. (SELECT username FROM users where users.username = rooms.`owner`));  
  177.  
  178. ?>
Esto no es un script de PHP, ni tampoco de MySQL. Es un híbrido que no sirve para nada.
¿Te queda claro que no puedes poner sentencias SQL puras en un script de PHP?
No se trata del mismo lenguaje, y PHP no interpreta SQL, como MySQL no interpreta PHP. Son universos distintos.
PHP envía sentencias de SQL al DBMS por medio de librerías específicas de acceso a BBDD, no las ejecuta por si mismo...

No te borro el script, solamente para que en el foro de pHP puedan darte lecciones sobre el uso de sentencias SQL desde PHP (interaccion de un lenguaje con la base de datos), y no tengas que volver a postear todo.
Pero, por favor, lee las normas del foro de Bases de Datos: No se permite postear código de programación en los foros de BBDD o sus suforos.
¿Te queda claro?

Movido a Foro de PHP
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #9 (permalink)  
Antiguo 09/03/2014, 10:53
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Y esto como se ejecuta?

Volviendo al tema de PHP, para ejecutarlo, deben ser llamadas a la base con cada sentencia SQL como una ejecución independiente.
Ahora bien, como un proceso de multiples selects puede fallar por razones variadas, y dejar los datos inconsistentes, es conveniente que tal secuencia de borrados sólo se aplique a bases de datos con tablas de tipo InnoDB, a fin de implementar transacciones.
En ese contexto, la cosa podría ser mas o menos así (siempre usando la librería MYSQLI y no la librería MYSQL):
Código PHP:
<?php

$db 
= new mysqli($host$user$pass);
$db->select_db("tuBase");

$qry "START TRANSACTION;";
$result $db->query($qry);
//Deletes achievements from non-existant users
$qry "DELETE FROM user_achievements WHERE \n";
$qry .= "user_achievements.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id =user_achievements.user_id);";
$result $db->query($qry);
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes effects from non-existant users
$qry "DELETE FROM user_effects WHERE \n";
$qry .= "user_effects.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id =user_effects.user_id);";
$result $db->query($qry);
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes badges from non-existant users
$qry "DELETE FROM user_badges WHERE \n";
$qry .= "user_badges.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id =user_badges.user_id);";
$result $db->query($qry);
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}

//Deletes favorites from non-existant users
$qry "DELETE FROM user_favorites WHERE \n";
$qry .= "user_favorites.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id = user_favorites.user_id);";
$result $db->query($qry);
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}

//Deletes favorites from non-existant rooms
$qry "DELETE FROM user_favorites WHERE \n";
$qry .= "user_favorites.room_id NOT IN \n";
$qry .= "(SELECT id FROM rooms where rooms.id = user_favorites.room_id);";
$result $db->query($qry);
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}

//Deletes info from non-existant users
$qry "DELETE FROM user_info WHERE \n";
$qry .= "user_info.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id = user_info.user_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes pets from non-existant users
$qry "DELETE FROM user_pets WHERE \n";
$qry .= "user_pets.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id = user_pets.user_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes pets from non-existant rooms
$qry "DELETE FROM user_pets WHERE \n";
$qry .= "user_pets.room_id NOT IN \n";
$qry .= "(SELECT id FROM rooms where rooms.id = user_pets.room_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes non-existant presents
$qry "DELETE FROM user_presents WHERE \n";
$qry .= "user_presents.item_id NOT IN \n";
$qry .= "(SELECT id FROM items where items.id = user_presents.item_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes quests from non-existant users
$qry "DELETE FROM user_quests WHERE \n";
$qry .= "user_quests.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id = user_quests.user_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes roomvisits from non-existant users
$qry "DELETE FROM user_roomvisits WHERE \n";
$qry .= "user_roomvisits.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id = user_roomvisits.user_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes roomvisits from non-existant rooms
$qry "DELETE FROM user_roomvisits WHERE \n";
$qry .= "user_roomvisits.room_id NOT IN \n";
$qry .= "(SELECT id FROM rooms where rooms.id = user_roomvisits.room_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes stats from non-existant users
$qry "DELETE FROM user_stats WHERE \n";
$qry .= "user_stats.id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id = user_stats.id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes subscriptions from non-existant users
$qry "DELETE FROM user_subscriptions WHERE \n";
$qry .= "user_subscriptions.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id = user_subscriptions.user_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes tags from non-existant users
$qry "DELETE FROM user_tags WHERE \n";
$qry .= "user_tags.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id = user_tags.user_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes wardrobe from non-existant users
$qry "DELETE FROM user_wardrobe WHERE \n";
$qry .= "user_wardrobe.user_id NOT IN \n";
$qry .= "(SELECT id FROM users where users.id = user_wardrobe.user_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes non-existant wired_items
$qry "DELETE FROM wired_items WHERE \n";
$qry .= "wired_items.item_id NOT IN \n";
$qry .= "(SELECT id FROM items where items.id = wired_items.item_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes non-existant teleports
$qry "DELETE FROM tele_links WHERE \n";
$qry .= "tele_links.tele_one_id NOT IN \n";
$qry .= "(SELECT id FROM items where items.id = tele_links.tele_one_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}
//Deletes non-existant teleports
$qry "DELETE FROM tele_links WHERE \n";
$qry .= "tele_links.tele_two_id NOT IN \n";
$qry .= "(SELECT id FROM items where items.id = tele_links.tele_two_id);";
if(!
$result)
{
    
$qry "ROLLBACK;";
    
$result $db->query($qry);
    return;
}


// Y así sucesivamente todas y cada una de las sentencias 
// para cerrar finalmente con una única llamada a confirmar la transaccion

    
$qry "COMMIT;";
    
$result $db->query($qry);
    return;
 
?>
¿Se entiende?

Lo que tiene que quedar claro es que una operacion como la que quieres hacer no es buena idea si usas tablas MyISAM, ya que este motor de tablas de MySQL no admite transacciones. En ese caso el borrado se complica y mucho...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mysql, select, sql
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 08:36.