Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Auteur : Ludovic Giambiasi
Version : 22/08/2006
Téléchargez le zip
Création d'un compteur avec une base de données mySQL
Ce code permet d'avoir un compteur pour un nombre de pages illimité. De plus il peut servir de statistiques.
Il faut auparavant créer une table dans la base de données.
Ici création de la table "stats" :
CREATE TABLE stats (
   page varchar(100) NOT NULL,
   nb int(11),
   PRIMARY KEY (page)
);
Le champ 'page' servira à accueillir le nom de la page, le champ 'nb', le compteur de la page relative.
Nous allons maintenant traiter le code par un exemple:
  • Exécutez cette requête dans 'phpmyadmin', par exemple :
INSERT INTO stats VALUES ( 'test', '1');
Après exécution, vous devez avoir dans votre table, une valeur 'test' dans le champ 'nom' et '1' dans le champ 'nb'.
  • Vous devez modifier vos paramètres de connexion dans le fichier 'connexion.php'


Auteur : ankou2005
Version : 27/07/2006
Téléchargez le zip
Gérer sa base de données
Nom de la classe : mysqlHelper
Configuration requise : PHP 5 et mySQL >= 4.0.25
Propriétés :
  • Connection/Déconnection à une base mysql.
  • Récupération de la liste des bases d'un serveur, des tables d'une base, des champs et index d'une table.
  • Permet d'exporter une base de données sans l'utilitaire mysqldump.exe.
  • Exporte la structure complète d'une base sous format XML.
  • Permet de répliquer une base de donnée maître vers N bases de données esclaves.
Réplication : J'ai créé cette fonction car je suis en hébergement mutualisé sans accès aux fonctions de réplication de mySQL ni aux fichiers de logs de mySQL. Pour le moment, elle permet de répliquer les :
  • Ajout/Modification/Suppression de tables.
  • Ajout/Modification/Suppression de champs.
  • Ajout/Modification/Suppression d'index.
  • Contenus de certaines tables (paramétrées dans un fichier de configuration).
Remarques : Cette version ne tient pas compte des nouveautés des mySQL 5, telle que
  • La classe.
  • Un exemple de fichier de configuration pour la réplication.
  • Un fichier d'exemples.


Auteur : Nesmontou
Version : 22/08/2006
Pagination d'un résultat de requête
Cette source est basée sur un exemple afin de mieux comprendre.
Pour le bon fonctionnement du code, nous devons créer la table utiliser et y ajouter des enregistrements :
CREATE TABLE `xmen` (
  `id` int(11) NOT NULL auto_increment,
  `personnage` varchar(255) NOT NULL default '',
  `acteur` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=12 ;
 
INSERT INTO `xmen` VALUES (1, 'Wolverine', 'Hugh Jackman');
INSERT INTO `xmen` VALUES (2, 'Magneto', 'Ian McKellen');
INSERT INTO `xmen` VALUES (3, 'Professeur X', 'Patrick Stewart');
INSERT INTO `xmen` VALUES (4, 'Docteur Jean Grey', 'Famke Janssen');
INSERT INTO `xmen` VALUES (5, 'Tornade', 'Halle Berry');
INSERT INTO `xmen` VALUES (6, 'Cyclope', 'James Marsden');
INSERT INTO `xmen` VALUES (7, 'Malicia', 'Anna Paquin');
INSERT INTO `xmen` VALUES (8, 'Dents-de-Sabre', 'Tyler Mane');
INSERT INTO `xmen` VALUES (9, 'Crapaud', 'Ray Park');
INSERT INTO `xmen` VALUES (10, 'Mystique', 'Rebecca Romijn');
INSERT INTO `xmen` VALUES (11, 'Pyro', 'Alex Burton');
Une fois cette étape terminée, on peut enfin utiliser le code :
<?php
// Numéro de la page à afficher
$page = 0;
if(isset($_GET['page']) && is_int($_GET['page'])) {
$page = $_GET['page'];
}
// Nombre de résultats par page
$nb = 5;
if(isset($_GET['nb']) && is_int($_GET['nb'])) {
$nb = $_GET['nb'];
}
// Connexion au serveur de base de données
$conn = mysql_connect('localhost', 'root', 'bprevot');
if(!$conn) {
die('Impossible de se connecter au serveur.');
}
// Connexion à la base de données
$db = mysql_select_db('test', $conn);
if(!$db) {
die('Impossible de se connecter à la base de données.');
}
// Nombre total d'enregistrements
$sql = '
SELECT COUNT(*) FROM xmen;
';
$query = mysql_query($sql, $conn) or die('Erreur MySQL : '.mysql_error());
$row = mysql_fetch_row($query);
$total = $row[0];
// Nombre maximum de pages
$max_pg = ceil($total / $nb);
// Selection des enregistrements pour la page considérée
$sql = '
SELECT id, personnage, acteur
FROM xmen
LIMIT '.($page * $nb).','.$nb.'
';
$query = mysql_query($sql, $conn) or die('Erreur MySQL : '.mysql_error());
?>
<p>Page actuelle : <?= $page ?></p>
<p>Nb d'enregistrements par page : <?= $nb ?></p>
<table>
<tr>
<th>ID</th>
<th>Personnage</th>
<th>Acteur</th>
</tr>
<?php
while($list = mysql_fetch_assoc($query)) {
echo '<tr>';
echo '<td>'.$list['id'].'</td>';
echo '<td>'.$list['personnage'].'</td>';
echo '<td>'.$list['acteur'].'</td>';
echo '</tr>';
}
?>
</table>
<p>Pages :
<?php
for($i = 0 ; $i < $max_pg ; $i++) {
echo ' <a href="?page='.$i.'&nb='.$nb.'">'.$i.'</a>';
}
?>
</p>
<p>Nb d'enregistrements par page :
<a href="?page=<?= $page ?>&nb=5">5</a>
<a href="?page=<?= $page ?>&nb=10">10</a>
<a href="?page=<?= $page ?>&nb=20">20</a></p>

Auteur : Ludovic Giambiasi
Version : 22/08/2006
Téléchargez le zip
Sauvegarder des données dans un fichier depuis une Base de Données
Le code présenté ici a pour but de sauvegarder des données dans un fichier sous forme de requête SQL.
Il y a différentes manières de sauvegarder les données. Habituellement, on les sauvegarde brutes, sans le "insert", juste avec un délimiteur. Mais ce n'est pas le cas dans ce code.
La sauvegarde du contenu de la table sera fait comme ceci :
"insert into abonnes values('ma_valeur1', 'ma_valeur2')"
Opération à effectuer avant utilisation :
  • En premier lieu, vous devez créer la table abonnes que voici :
CREATE TABLE abonnes (
mail varchar(60) NOT NULL,
date date NOT NULL,
PRIMARY KEY (mail)
);
Puis y insérer quelques valeurs.
  • Vous devez modifier vos paramètres de connexion dans le fichier "connexion.php"


Auteur : torvalds17
Version : 22/08/2006
Sauvegarder la structure et les données d'une base MySQL
Voici la fonction à utiliser :
function dumpMySQL($serveur, $login, $password, $base, $mode)
{
	$connexion = mysql_connect($serveur, $login, $password);
	mysql_select_db($base, $connexion);
	
	$entete = "-- ----------------------\n";
	$entete .= "-- dump de la base ".$base." au ".date("d-M-Y")."\n";
	$entete .= "-- ----------------------\n\n\n";
	$creations = "";
	$insertions = "\n\n";
	
	$listeTables = mysql_query("show tables", $connexion);
	while($table = mysql_fetch_array($listeTables))
	{
		// si l'utilisateur a demandé la structure ou la totale
		if($mode == 1 || $mode == 3)
		{
			$creations .= "-- -----------------------------\n";
			$creations .= "-- creation de la table ".$table[0]."\n";
			$creations .= "-- -----------------------------\n";
			$listeCreationsTables = mysql_query("show create table ".$table[0], $connexion);
			while($creationTable = mysql_fetch_array($listeCreationsTables))
			{
			  $creations .= $creationTable[1].";\n\n";
			}
		}
		// si l'utilisateur a demandé les données ou la totale
		if($mode > 1)
		{
			$donnees = mysql_query("SELECT * FROM ".$table[0]);
			$insertions .= "-- -----------------------------\n";
			$insertions .= "-- insertions dans la table ".$table[0]."\n";
			$insertions .= "-- -----------------------------\n";
			while($nuplet = mysql_fetch_array($donnees))
			{
				$insertions .= "INSERT INTO ".$table[0]." VALUES(";
				for($i=0; $i < mysql_num_fields($donnees); $i++)
				{
				  if($i != 0)
				     $insertions .=  ", ";
				  if(mysql_field_type($donnees, $i) == "string" || mysql_field_type($donnees, $i) == "blob")
				     $insertions .=  "'";
				  $insertions .= addslashes($nuplet[$i]);
				  if(mysql_field_type($donnees, $i) == "string" || mysql_field_type($donnees, $i) == "blob")
				    $insertions .=  "'";
				}
				$insertions .=  ");\n";
			}
			$insertions .= "\n";
		}
	}

	mysql_close($connexion);

	$fichierDump = fopen("dump.sql", "wb");
	fwrite($fichierDump, $entete);
	fwrite($fichierDump, $creations);
	fwrite($fichierDump, $insertions);
	fclose($fichierDump);
	echo "Sauvegarde réalisée avec succès !!";
}
À appeler sous la forme suivante :
dumpMySQL("127.0.0.1", "root", "", "ma_base", 3);

precedent    sommaire    suivant   

Consultez les autres pages sources


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2006  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com