IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Bases de données > MySQL
        Afficher le résultat d'une requête MySQL comme dans phpMyAdmin
        Gérer sa base de données
        Sauvegarder des données dans un fichier depuis une Base de Données
        Création d'un compteur avec une base de données mySQL
        Insérer, modifier et supprimer un enregistrement
        Sauvegarder la structure et les données d'une base MySQL
        Pagination d'un résultat de requête



Auteur : mathieu
Version : 11/01/2006
Afficher le résultat d'une requête MySQL comme dans phpMyAdmin
<?php

$requete = '...';

mysql_connect('serveur', 'login', 'pass');
mysql_select_db('bdd');

/***********************************************************************************/

$res = mysql_query($requete) or exit(mysql_error());

echo '<table border="1"><tr>';

for ($i = 0; $i < mysql_num_fields($res); $i++) {
    echo '<th>';
    echo mysql_field_name($res, $i);
    echo '</th>';
}

echo '</tr>';

while ($row = mysql_fetch_row($res)) {
    echo '<tr>';
   
    for ($j = 0; $j < count($row); $j++) {
        echo '<td>';
        echo ($row[$j] == NULL) ? '<i>NULL</i>' : $row[$j];
        echo '</td>';
    }
   
    echo '</tr>';
}

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, telles que
  • La classe ;
  • Un exemple de fichier de configuration pour la réplication ;
  • Un fichier d'exemples.

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 :
  1. 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 :
  1. Vous devez modifier vos paramètres de connexion dans le fichier "connexion.php"

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 : Ludovic Giambiasi
Version : 22/08/2006
Téléchargez le zip
Insérer, modifier et supprimer un enregistrement
  • Première chose à faire: créer une table dans votre base de données
On travaille avec la table suivante :
create table essai(
code_essai int(11) not null auto_increment,
remplissage varchar(100) not null,
primary key(code_essai)
);
  • Editez le fichier 'connexion.php' et modifier les variables de connection à votre base de données.

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);

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>


Consultez les autres pages sources


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2006 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.