Bonjour!
voilà cet après midi j'ai cherché longtemps comment copier toute une série de tables (qui ont un préfixe) et les coller dans la même table, avec un préfixe différent.
la solution dégueulasse que j'ai trouvé, avec mon petit niveau sql, c'est ça :
c'est assez moche, mais j'en avais marre de chercher des trucs (je testais des update avec AS, mais ça ne marche pas), et ce serveur qui ne veut pour rien au monde m'afficher les erreurs... (page blanche en cas d'erreurs) (prowebserver, pour le site d'as de trefle)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(-1); $prefixe_forum = 'forum_phpBB3__'; $prefixe_test = 'forum_test__'; $lk = mysql_connect($sql_serveur, $sql_login, $sql_password); mysql_select_db($sql_base, $lk); $q2 = mysql_query("SHOW TABLES LIKE '" . $prefixe_forum . "%'", $lk); $i=0; $t2[0] = ""; // ça peut paraître bizarre, mais si j'initialise pas le tableau, la page ne fait rien, et php n'affiche pas les erreurs sur ce serveur... while ( ($r2 = mysql_fetch_row($q2)) !== false) { $t2[$i]=$r2[0]; $i++; } $q = mysql_query("SHOW TABLES LIKE '" . $prefixe_test . "%'", $lk); $i=0; while ( ($r = mysql_fetch_row($q)) !== false) { mysql_query("DROP TABLE ". $r[0]); mysql_query("CREATE TABLE " . $r[0] . " AS SELECT * FROM " . $t2[$i] . ";") or die("erreur mysql : " . mysql_error()); echo $r[0] . ' => effectué<br>'; $i++; } mysql_close();
si vous connaissez une solution propre, je prends!
merci,
Gaël
Partager