Textes // Script de conversion de table de 2.0 vers 3.0 // Paramètres de connexion à MySQL --------------------------------------------------- $host = "localhost"; // Serveur $user = "root"; // LOgin $pass = "abcd"; // Mot de passe $bdd = "jicom"; // Base de données // La table originale à convertir $old_table = "jicom_siteforum"; // La nouvelle table qui sera crée $new_table = "jicom_siteforum2"; // Le nombre de messages à traiter par page $parpage = 50; // FIN DE LA PARTIE A PARAMETRER $lien = mysql_connect($host,$user,$pass) or die(mysql_error()); mysql_select_db($bdd,$lien) or die(mysql_error()); function page($texte) { header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); $titre = "Textes - conversion 2.0 > 3.0"; echo ' '.htmlentities($titre).'


'.htmlentities($titre).'

'.stripslashes($texte).'

'; exit; } function crea_table() { global $new_table; $requete = "CREATE TABLE ".$new_table." ( id INT AUTO_INCREMENT PRIMARY KEY, nom varchar(80) NOT NULL DEFAULT 'Anonyme', email varchar(100) NULL, sujet varchar(100) NOT NULL, texte TEXT NOT NULL, date INT(20) NOT NULL, parent INT NOT NULL DEFAULT '0', date_fiston INT(20) NULL, ip VARCHAR(40) NOT NULL DEFAULT 'Inconnue', statut ENUM('suivi','admin','actu','rien') NOT NULL DEFAULT 'rien', validation ENUM('oui','non') NOT NULL DEFAULT 'oui');"; $resultat = mysql_query($requete); if($resultat < 1) die(page("Erreur dans la requête ".htmlentities(stripslashes($requete)).".

MySQL à renvoyé: ".mysql_error()."")); $texte = "Création de la table réussie."; $texte.= "

> Étape suivante"; page($texte); } function conversion($debut) { global $old_table,$new_table,$parpage; $requete = "SELECT COUNT(*) FROM ".$old_table; $res = mysql_fetch_row(mysql_query($requete)); $total = $res[0]; if($debut >= $total) { $requete = "SELECT COUNT(*) FROM ".$new_table; $res = mysql_fetch_row(mysql_query($requete)); $total2 = $res[0]; $texte = "Fin de la procédure

"; if($total2 < $total) $texte.= "Il manque des messages dans la nouvelle table par rapport à l'ancienne!"; else $texte.= "Tout s'est bien déroulé. Vous pouvez supprimer l'ancienne table si vous le voulez. Ensuite il ne vous reste plus qu'à supprimer les anciens fichiers et à installer la nouvelle version de Textes 3.0."; page($texte); } else { $requete = "SELECT * FROM ".$old_table." ORDER BY id ASC LIMIT ".$debut.",".$parpage; $resultat = mysql_query($requete) or die(page("Erreur dans la requête ".htmlentities(stripslashes($requete)).".

MySQL à renvoyé: ".mysql_error()."")); while($rec = mysql_fetch_array($resultat)) { $id = $rec['id']; $parent = $rec['thread']; $email = $rec['email']; $sujet = addslashes(stripslashes($rec['sujet'])); $nom = addslashes(stripslashes($rec['nom'])); $texte = addslashes(stripslashes($rec['texte'])); $date = $rec['date']; eregi("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2})",$date,$out); $date = mktime($out[4],$out[5],0,$out[2],$out[3],$out[1]); $date_fiston = $rec['tempo']; if(empty($date_fiston) || ($date_fiston == $rec['date'])) $date_fiston = $date; else { eregi("([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}):([0-9]{2})",$date_fiston,$sortie); $date_fiston = mktime($sortie[4],$sortie[5],0,$sortie[2],$sortie[3],$sortie[1]); } $ip = $rec['ip']; if($rec['suivi'] == 2) $statut = "admin"; elseif($rec['suivi'] == 1) $statut = "suivi"; else $statut = "rien"; $requete = "INSERT INTO ".$new_table." SET id=\"$id\", parent=\"$parent\", email=\"$email\", "; $requete.= "nom=\"$nom\", sujet=\"$sujet\", texte=\"$texte\", date=\"$date\", date_fiston=\"$date_fiston\", "; $requete.= "ip=\"$ip\", statut=\"$statut\", validation='oui'"; $res = mysql_query($requete) or $errors.= "".$requete."
".mysql_error()."
"; } if(!empty($errors)) $texte2 = "MySQL à renvoyé des erreurs :
".$errors."

"; $texte2.= "> Suite de la conversion..."; page($texte2); } } function suppr_old() { global $old_table; $requete = "DROP TABLE IF EXISTS ".$old_table; $resultat = mysql_query($requete) or die(page("Erreur dans la requête ".htmlentities(stripslashes($requete)).".

MySQL à renvoyé: ".mysql_error()."")); page("Tout s'est bien passé, la table ".$old_table." a été supprimée."); } if(isset($debut)) conversion($debut); elseif(!empty($suppr_old)) suppr_old(); elseif(!empty($crea_table)) crea_table(); else page("Bienvenue dans le script de conversion des tables de <PRé>Textes 2.0 vers 3.0.

> Première étape : création de la nouvelle table"); ?>