Bonjour à tous,
Je suis coincé et j'ai beau regarder, il me semble que mon script est bon mais manifestement pas... J'ai une erreur mysql_fetch_assoc...
Je vous explique. J'ai une table1 dans une bdd1 qui est en vrac. Je veux enlever les doublons et la copier, champ par champ, dans une table2 de la bdd2.
Mon script :
Si vous pouviez m'aider, merci d'avance.
Modifié par whombat (29 Jun 2011 - 15:36)
Je suis coincé et j'ai beau regarder, il me semble que mon script est bon mais manifestement pas... J'ai une erreur mysql_fetch_assoc...
Je vous explique. J'ai une table1 dans une bdd1 qui est en vrac. Je veux enlever les doublons et la copier, champ par champ, dans une table2 de la bdd2.
Mon script :
require ("fonctions.php"); // les fonctions personnelles
require ("conf.pfp"); // définition des bdd
GetMyConnection1(); //fonction de connection et contrôle pour la bdd1
$tables = mysql_list_tables($bdd1);
GetMyConnection2(); //fonction de connection et contrôle pour la bdd2
while ($line = mysql_fetch_row($tables)) {
$table1 = trim($line[0]); // nom des tables bdd1. Ce seront les mêmes dans la bdd2
$table2 = $table1;
// tri de la table sur la 'ville'
// les champs de la table sont id, pays, region, departement, ville, lat, long, et zipCode
// ici j'utilise le DISTINCT mais je le maîtrise mal...
$sql = "SELECT DISTINCT * FROM $table1 GROUP BY `ville`";
$rep = mysql_query($sql);
if (!$rep) {
echo "Erreur DB, impossible de trier la table <BR>";
echo 'Erreur MySQL : ' . mysql_error()."<BR><BR>";
} else {
if ($num_rows = mysql_num_rows($rep) > 0) {
while ($donnees = mysql_fetch_assoc($rep)) {
$pays = "";
$region = "";
$departement = "";
$ville = "";
$lat = "";
$long = "";
$zipCode = "";
// ici, dans la table1, le code est global et je le divise pour obtenir le pays et la région
$code = trim($donnees["code"]);
$taille = strlen($code);
$pays = left($code, 2);
$region = right($code, $taille - 2);
$departement = trim($donnees["departement"]);
$ville = trim($donnees["ville"]);
$lat = trim($donnees["lat"]);
$long = trim($donnees["long"]);
$zipCode = trim($donnees["zipCode"]);
$sql = "INSERT INTO $bdd2.$table2
VALUES ('', '$pays', '$region', '$departement', '$ville', '$lat', '$long', '$zipCode')";
$rep = mysql_query($sql);
if (!$rep) {
echo "Erreur DB, impossible d'enregistrer la table <BR>";
echo 'Erreur MySQL : ' . mysql_error()."<BR><BR>";
}
}
}
}
}
Si vous pouviez m'aider, merci d'avance.
Modifié par whombat (29 Jun 2011 - 15:36)