FLASHMX2004 CLASS SQL (MYSQL & ACCESS) V5.5 (AVEC PHP)

SuperDevy Messages postés 842 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 2 juillet 2007 - 5 juin 2004 à 08:29
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 - 30 déc. 2007 à 13:08
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/23422-flashmx2004-class-sql-mysql-access-v5-5-avec-php

_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
30 déc. 2007 à 13:08
j'avoue qu'elle soit completement ouverte c'est pas top, mais pour ma défence à l'epoque ou je l'ai faite, il n'y avait qu'un décompileur qui fonctionné, et perso je re-encodais mes swf avec swfencode (ce qui rendez la décompilation impossible)...
mais il est clair que c'est surtout les info de connexion à la db dans le swf qui crainent, now moi je les met plus dans le swf mais juste dans php (que lui on peu pas recup)...
pour finir pas de prob de delete ou autre alter sur mes tables parce que j'ai tjs plusieur user sur mes base de données, dont 1 pour flash qui fait que la lecture...
voilou voilou
++
gfpl Messages postés 172 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 9 avril 2011
28 déc. 2007 à 18:05
SuperDevy c'est a titre de demo pour montrer comment faire une requete entre flash sql php

tu peut prendre ces info depuis php ;)
SuperDevy Messages postés 842 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 2 juillet 2007
28 déc. 2007 à 17:32
C'est du suicide cette source !
1. Login/mdp de la base de données sont accessibles par n'importe qui (une simple décompilation et hop)
2. Elle permet de faire n'importe quelle requête par n'importe qui. "DELETE FROM xxx" par exemple ...

Faut vraiment être fou pour l'utiliser sur un site internet.
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
28 déc. 2007 à 16:51
ouaip voilà, plutot que de faire la fete je vais rester et préparer ca... puis quoi encore LOL
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
28 déc. 2007 à 14:56
;-) ca tombe bien, je paris que tu ne savais pas quoi faire de ton premier janvier ;-)
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
28 déc. 2007 à 10:54
LOL merci bien, mais si tu regardes de plus près cette source date de 2004, et est en AS2 (héritage au balbusiment dans flash).
Et now en AS3, c'est tout autre chose, peux être que je mettrais un jour ma classe sql AS3...
++
_benjy
proffial Messages postés 35 Date d'inscription mardi 20 mai 2003 Statut Membre Dernière intervention 23 juillet 2009
28 déc. 2007 à 01:00
Bonjour,
bravo pour le script,

Cependant, y'as des trucs qui me choquent dans ton exemple.

Moi personnellement, je ferais la chose suivante :

Création d'une classe mere : Connect_SQL
avec les infos suivante
# sql.type = "odbc"; // mysql ou odbc.
# sql.host = "localhost"; // uniquement pour mysql
# sql.login = "root";
# sql.mdp = "";
....

avec potentiellement les fonctions suivante
# sql.listeDB(); // lister les base du server mysql uniquement
# sql.listeTables(); // lister les tables d'un db
....

Ensuite je réaliserait une classe fille sql_order
qui hérite tout de la classe mere,
Comme çà on a pas a tout redefinir a chaque fois que l'on créé un Ordre SQL

et je definierais les fonctions suivante pour la classe sql_order
# order > l'ordre SQL
# error > pour la gestion de l'erreur
# rowCount > nb resultats
# columnCount > nb colonnes
# columnNames > tableau contenant les entetes du resultat
# columnTypes > renvois un tableau des types de champ de la base
# getRow(numRow)
# getCells(numRow,columnNames)

Voir le top du top créer a nouveau une classe Row
avec en parent la classe Order

pour pouvoir faire un code dans le genre

var sql_order:Sql_order = new Sql("http://localhost/_FlashPhp/sql_order.php");

sql_order.order =('SELECT id,name,champ4 from tatable');

for $i = 0 to sql_order.rowCount
{
echo sql_order.getrow($i).getcolumname('champ4');
}

voir un
for &i = 0 to sql_order.rowCount
{
for &j = 0 to sql_order.columnCount
echo sql_order.getrow(&i).getcolumnum(&j);
}

Si t'arrives a faire ca, ta source sera le top du top, et risque d'être très utilisée.
ajoucadou Messages postés 4 Date d'inscription dimanche 8 avril 2007 Statut Membre Dernière intervention 15 octobre 2008
2 déc. 2007 à 00:36
Ce script a l'air bien, mais j'ai aussi l'erreur "indéfini"... et je suis en version php > 4.2
Quelqu'un aurait il le fichier sql.php mis à jour ?
victorcoasne Messages postés 1101 Date d'inscription jeudi 24 avril 2003 Statut Membre Dernière intervention 23 juillet 2023 7
2 sept. 2007 à 20:45
10/10 !
gfpl Messages postés 172 Date d'inscription samedi 11 août 2012 Statut Membre Dernière intervention 9 avril 2011
1 nov. 2006 à 11:58
super source vraimment rien a dire
ke cherchias justement ca un grand merci pour ca et le boulot que ca t as demander

perso parfois j ai le probleme pour la recuperation de variable et le seul truc qui passe c est loadVariablesNum("/index.php?page=login&username="+(username)+...

sinon ca passe pas
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
22 mars 2006 à 22:08
j'utilise plus cette class depuis des plombes en fait, je m'en suis fait un composant (trouvable là : http://composants.kolapsis.net)
pour php c du php 4 mais bon en mm temps c juste l'utilisation de mysql_... existant aussi sous 1.8
pour récup les var je sais que sur certain serveur (selon la config) faut mettre
extract($HTTP_POST_VARS);
pour recup les données envoyer au script
++
13wxcvbn Messages postés 8 Date d'inscription vendredi 2 décembre 2005 Statut Membre Dernière intervention 20 mars 2006
20 mars 2006 à 16:58
Si t a dispo alors profitons en ....toujours le pb de "indefinie" apparament j'ai pas le niveau...moi je veux rester avec PHP 1.8 donc g voulu faire comme t'as dit avec le POST mais j'y arrive pas plus...ou encore g tenté de passer $typebase, $sqldbname, $sqlpass, et $sqlloginb en dur mais marche pas non plus....
As tu un eclaircissement a me fournir c serait
cool????
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
28 janv. 2006 à 16:10
l'uilisation en est pourtant simple, comme l'uilisation d'un objet son
bon c sur faut quelque notions d'AS2 (de prog objet surtout), mais sinon c pas tres compliqué (a utiliser pas forcement a refaire LOL)
je reste a dispo pour les questions d'utilisation
++
(ps : en mp, si ca vaut pas le coup pour tt le monde)
la_ptite_85 Messages postés 49 Date d'inscription dimanche 27 juin 2004 Statut Membre Dernière intervention 2 juillet 2006
27 janv. 2006 à 22:08
J'essaye de m'en servir...mais c'était peut-être un peu ambitieux de mettre cette source en niveau débutant!!! pasque moi je débute, et je pige pas grand chose lol
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
10 oct. 2005 à 19:47
LOL mais nan ss rancunes, juste ca me fait rire ... :)
ombr0 Messages postés 21 Date d'inscription samedi 30 avril 2005 Statut Membre Dernière intervention 6 décembre 2008
10 oct. 2005 à 19:41
Je suis désoler d'avoir copier cette source lol j'ai créer une version plus simple , qui est déstiné a ce qui veulent aprendre :P sans rancunes ???
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
9 juil. 2005 à 02:29
WAZAAAAAA ca marche ...
effectivement il faut que la version d apache soit inferieur à 4.2.0,
donc j ai reinstaller un easyphp 1.6

bravo benjy ...
a voir si j arrive à modifier le php , pour qu il recupere TOUTES les variables en POST à moins que t ai déja prévu une version pour apache > 4.2

thx je met 10/10

PS: préciseras que c'est pour une version anterieur à php 4.2 dans l entête? tu te ramasseras plus de 10/10 encore
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
8 juil. 2005 à 15:09
a noté que c'est pour une version PHP 4.2.0
si tu est en version supp il faut modifier le sql.php pour qu'il récup bien les variables en POST envoyé par Flash
$variable ne marche pas en PHP > à 4.2.0
il faut $POST["variable"]
ou mettre un script qui met en global les vars de POST
++
_benjy
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
8 juil. 2005 à 15:02
excuses moi, effectivement je ne devrais pas dire que cela ne marche pas, mais plutot que je n arrive pas à le configurer ...

en ce qui concerne
new Sql("http://localhost/RD/mysql/flashkod_classMysql/sql.php/");

j avais déja essayé justement sans le slash, et c'était pareil ...

- je suis bien en MX2004
- je ne fais aucun import d as au moment de la compilation
- mon serveur apache est à jour ...

je vais voir du côté du gateaway.php , bien vérifier qu il a les droits en chmod 777 déja ...
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
8 juil. 2005 à 14:19
Nan mais fo regarder avant de dire que ca marche pas
dans ton copier collé de malade là haut t'as ecrit :
new Sql("http://localhost/RD/mysql/flashkod_classMysql/sql.php/");
tu crois vraiment que le / a la fin il gene pas ????
les erreur indefini c'est kan la class ne trouve pas le gateway généralement
et la avec le slashe a la fin, cherche pas plus loin !!!
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
8 juil. 2005 à 14:11
excuse , effectivement c est un peu brute de ma part !

en fait c'est comme fonetiklilian au dessus qui a eu le meme probleme que moi apperement :

ca me fait 'indefini' comme reponse à chaque fois ...


je te file mon msn si tu le souhaites !
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
8 juil. 2005 à 12:11
ohlalala, t'es pas un peu fous de tt copier comme ca ...
c koi le prob plutot que dire que ca marche pas, dis où, quand et comment ...
moi elle marche partout cette class ...
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
8 juil. 2005 à 01:29
pareil ca marche pas .... hum
faut il preciser l import des as à l exportation du flash !?
thx pour la reponse ....

Le code :


// Importer les class
import Class.Sql;

Resultats.border = true;

// créer un nouvel objet Sql
var sql:Sql = new Sql("http://localhost/RD/mysql/flashkod_classMysql/sql.php/"); // ou en chemin relatif bien sur Sql("sql.php");
sql.showtime = true;

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// tout d'abord les données de connexion
sql.type = "mysql"; // mysql ou odbc.
sql.host = "localhost"; // uniquement pour mysql
sql.login = "root";
sql.mdp = "";

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// ensuite la base de donnée a selectionner
sql.dbname = "nymky"; //mysql test
//sql.dbname = "FlashSqlODBC"; //odbc test

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// ou lister les bases de données du serveur mySql.
function listerlesbase(){
sql.onResult = function(dbs){
if (dbs.isError()){
Resultats.text = dbs.getError();
return;
}
// voici les resultats retourné dans un objet ResultSet
// nom du champ renvoyé : 'database'
Resultats.text = "Liste des base de données du serveur :";
for (var i=0; i<dbs.rowCount; i++){
Resultats.text += "\n\t"+dbs.getRow(i).database;
}
}
sql.listeDB();
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// Vous pouvez lister les tables de la base en cours, ou d'une autre en la spécifiant comme argument.
function listerlestables(){
sql.onResult = function(tables){
if (tables.isError()){
Resultats.text = tables.getError();
return;
}
// voici le liste des tables de la base en cours ou spésifié;
// attention cette commande change la base en cours.
// nom du champ renvoyé : 'table'
Resultats.text = "Liste des tables : ";
for (var i=0; i<tables.rowCount; i++){
Resultats.text += "\n\t"+tables.getRow(i).table;
}
}
sql.listeTables();
//sql.listeTables(db);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// executer toute requete sql.
function requetesql(qry){
sql.onResult = function(rs){
if (rs.isError()){
Resultats.text = rs.getError();
return;
}
if (rs.rowCount == 0){
Resultats.text = "Aucun resultat";
} else if (rs.rowCount > 0){
Resultats.text = "Données chargés";
Resultats.text += "\nRésultat de votre requête : ";
for (var i=0; i<rs.rowCount; i++){
Resultats.text += "\n\tRS "+(i+1);
for (var j=0; j<rs.columnNames.length; j++){
Resultats.text += "\n\t\t"+rs.columnNames[j]+" : "+rs.getRow(i)[rs.columnNames[j]];
}
}
} else if (rs.success == true){
Resultats.text = "Requête éxécuté avec succes !";
}
}
sql.execute(qry);
}

listerlesbase_btn.onRelease = listerlesbase;
listerlestables_btn.onRelease = listerlestables;
requetesql_btn.onRelease = function(){
requetesql("select * from table1");
}
insertsql_btn.onRelease = function(){
if (sql.type == "mysql"){
var q = "insert into table1 set login='";
q +sql.format("c'est + - * / comment ?"racontes % moi");
q += "'";
} else {
var q = "insert into table1 (login) values ('";
q +sql.format("c'est + - * / comment ?"racontes % moi");
q += "')";
}
requetesql(q);
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////
// optionnellement definisé une fonction pour l'activité du serveur.
sql.onActivity = function(etat){
trace ("activité : "+etat);
}
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
7 juil. 2005 à 15:01
merci Blackwizzard :)

_benjy
vincseize Messages postés 113 Date d'inscription mardi 25 février 2003 Statut Membre Dernière intervention 28 mars 2010
7 juil. 2005 à 14:54
Un bravo de Blackwizzard , ca c est la classe !!!!
cs_lemage77 Messages postés 1 Date d'inscription vendredi 20 février 2004 Statut Membre Dernière intervention 20 janvier 2011
24 juin 2005 à 11:26
j'ai installé wamp5 pour tester en local et je fais quoi je suis newbie la dedans comment je peux tester cela etbesoin d'aide pour faire fonctionner

help me

lemage
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
15 avril 2005 à 11:22
alors 2 solutions pour les données sencibles
1 - soit tu crypt ton swf avec SWFCrypt (je crois que ct ca le nom) qui encode tt le swf (marche tjs aussi bien mais indecompilable) mais fo acheté un licence en plus c pas top
2 - tu met les info de connexion a la DB en dur ds la php (sql.php) et voilacth (vo bidouillé ma class pour enlevé les var de connexion dans se cas)

++
_benjy
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
14 avril 2005 à 19:58
Y a comme un problème...
C est qu'avec un décompileur, on récupère toutes les infos nécessaire pour un piratage en bon et du forme de tes bases de données. Et oui, le nom de la base et son login sont dans le SWF !!!

Il faut que tu ajouts une classe.
Une classe SQL appelle un "SQLconnection", qui elle ira chercher via un PHP, si l'utlisateur peut se connecter ou non. Le log retournant juste un "true" ou "false", et de cette réponse du lance ta requete ( ou non ) ...

Toi tu fais : SWF > PHP > SQL > PHP > SWF
Il faut que tu fasse :
SWF > PHP [VERIFICATION DES DONNEES] > SWF puis si ok, SWF > PHP > SQL > PHP > SWF

Suis je claire ? En tout cas la mienne fonctionne comme ceci...
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
14 avril 2005 à 15:03
ben vu que c un copier collé de mon code ca marche (chez moi et chez tt les autre il marche,
le seul truc c que je vois de diff c ton espace dans le chemin du php au tt debut
tu sais que sur le nt on evite les espace dans les nom de fichier ou dossier kan mm ?
essais de changer ca ... car sinon je vois pas tt parait nikel

++
fonetiklilian Messages postés 32 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 9 mars 2008
14 avril 2005 à 10:19
Merci c'est sympa...

// Importer les class
import Class.Sql;

Resultats.border = true;

// créer un nouvel objet Sql
var sql:Sql = new Sql("http://127.0.0.1/flash/connection/class sql/sql.php"); // ou en chemin relatif bien sur Sql("sql.php");
sql.showtime = true;

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// tout d'abord les données de connexion
sql.type = "mysql"; // mysql ou odbc.
sql.host = "localhost"; // uniquement pour mysql
sql.login = "root";
sql.mdp = "";

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// ensuite la base de donnée a selectionner
sql.dbname = "fanou"; //mysql test
//sql.dbname = "FlashSqlODBC"; //odbc test

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// ou lister les bases de données du serveur mySql.
function listerlesbase(){
sql.onResult = function(dbs){
if (dbs.isError()){
Resultats.text = dbs.getError();
return;
trace ("jfjsldkjflsdkfj");
}
// voici les resultats retourné dans un objet ResultSet
// nom du champ renvoyé : 'database'
Resultats.text = "Liste des base de données du serveur :";
for (var i=0; i<dbs.rowCount; i++){
Resultats.text += "\n\t"+dbs.getRow(i).database;
}
}
sql.listeDB();
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// Vous pouvez lister les tables de la base en cours, ou d'une autre en la spécifiant comme argument.
function listerlestables(){
sql.onResult = function(tables){
if (tables.isError()){
Resultats.text = tables.getError();
return;
}
// voici le liste des tables de la base en cours ou spésifié;
// attention cette commande change la base en cours.
// nom du champ renvoyé : 'table'
Resultats.text = "Liste des tables : ";
for (var i=0; i<tables.rowCount; i++){
Resultats.text += "\n\t"+tables.getRow(i).table;
}
}
sql.listeTables();
//sql.listeTables(db);
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////
// executer toute requete sql.
function requetesql(qry){
sql.onResult = function(rs){
if (rs.isError()){
Resultats.text = rs.getError();
return;
}
if (rs.rowCount == 0){
Resultats.text = "Aucun resultat";
} else if (rs.rowCount > 0){
Resultats.text = "Données chargés";
Resultats.text += "\nRésultat de votre requête : ";
for (var i=0; i<rs.rowCount; i++){
Resultats.text += "\n\tRS "+(i+1);
for (var j=0; j<rs.columnNames.length; j++){
Resultats.text += "\n\t\t"+rs.columnNames[j]+" : "+rs.getRow(i)[rs.columnNames[j]];
}
}
} else if (rs.success == true){
Resultats.text = "Requête éxécuté avec succes !";
}
}
sql.execute(qry);
}

listerlesbase_btn.onRelease = listerlesbase;
listerlestables_btn.onRelease = listerlestables;
requetesql_btn.onRelease = function(){
requetesql("select * from table1");
}
insertsql_btn.onRelease = function(){
if (sql.type == "mysql"){
var q = "insert into table1 set login='";
q +sql.format("c'est + - * / comment ?"racontes % moi");
q += "'";
} else {
var q = "insert into table1 (login) values ('";
q +sql.format("c'est + - * / comment ?"racontes % moi");
q += "')";
}
requetesql(q);
}


//////////////////////////////////////////////////////////////////////////////////////////////////////////
// optionnellement definisé une fonction pour l'activité du serveur.
sql.onActivity = function(etat){
trace ("activité : "+etat);
}

Voili voilo
_benjy Messages postés 1575 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 21 février 2011 2
13 avril 2005 à 11:33
Ben j'sais pas
genre t'es sur de bien appelé le script php ?
var sql:Sql = new Sql("http://localhost/repertoire/sql.php") // mettre localhost pour fonctionnement direct depuis flash, sinon flash lis le fichier php en local et forcement ca marche pas

mais sinon j'ai retelechargé ma sources, elle fonctionne, c forcement toi qui t'es planté par là

met ton code au complet que je puisse voir

++

_benjy
fonetiklilian Messages postés 32 Date d'inscription lundi 10 mai 2004 Statut Membre Dernière intervention 9 mars 2008
13 avril 2005 à 08:58
Bonjour,

Pour ma part... Aucune des actions ne fonctionne... J'ai toujour "indéfini" dans la zone de texte... Pourtant mes parametres sont ok pour moi avec easyPhp:

sql.type = "mysql"; // mysql ou odbc.
sql.host = "localhost"; // uniquement pour mysql
sql.login = "root";
sql.mdp = "";

Quelqu'un a t'il une piste de recherche...

Merci et bonne journée
Utilisateur anonyme
9 juin 2004 à 17:14
au fait, quel status pour ta boite? EI? EURL?
Utilisateur anonyme
9 juin 2004 à 17:08
tres bon boulot :)
9/10
bienvenue sur le site ;)
djawel Messages postés 49 Date d'inscription lundi 1 juillet 2002 Statut Membre Dernière intervention 11 janvier 2006
6 juin 2004 à 15:20
bô boulot
LocalStone Messages postés 514 Date d'inscription mercredi 19 mars 2003 Statut Membre Dernière intervention 1 mars 2009
6 juin 2004 à 14:43
Bon, bah vous m'avez convaincu, tous, là. Je me lance dans l'ActionScript 2.0. Merci !
top30 Messages postés 1158 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 6 août 2010
5 juin 2004 à 14:35
C'est super bon.. Ton approche est quasi la même que la mienne. Toi tu balance le query totale ment "Stringé" et retourne un tableau... C'est une bonne approche... La mienne tu construit le Query en flash genre...
maRequete = new Query (server) ;
maRequete.select ("variable");
maRequete.where ("ID, 0, 9);
maRequete.consult (dataBase);

Et ca me retourne un XML... Je te tire mon chapeau car moi des Class comme ca je prefere les garder pour moi (Egoiste ??? Ou la sensation de voir s'echapper un gros travail t appartenant???)...

J ai mis 9 ! Encore bravo !
SuperDevy Messages postés 842 Date d'inscription dimanche 24 novembre 2002 Statut Membre Dernière intervention 2 juillet 2007
5 juin 2004 à 08:29
Géant ! Et si en plus ça marche, c'est du bonheur...

J'était avide d'une telle source, moi qui n'arrive pas à comprendre le fonctionnement de MySQL.

Malheureusement, je n'ai pas MX 2004 et je suppose que ça peut pas marcher avec MX ! ;-[
Rejoignez-nous