Je vous propose de découvrir dans ce nouveau Tutoriels (Chasse aux bugs) comment Stocker les images dans la Base de données, en d'autres terme le sauvegardé, dans cette vidéo nous allons corrigé les erreurs de notre application d'e-commerce et nous allons commencé par les erreurs des images
Abonne toi ? https://www.youtube.com/channel/UC46u_O-UerkzuSHHrR7zQCw
Buffer : https://doc.pcsoft.fr/?1514042&name=type_buffer_type_variable
Vous pouvez aussi utiliser la fonction Crypte pour crypter les images et stocker dans la base de données
Exemple d'utilisation avec la fonction Crypte
BufferImage est une Buffer
//A placer dans le constructeur
BufferImage = dSauveImageJPEG(ImageP,enMémoire)
NomImage = Crypte(BufferImage,"dc")
Pour charger l'image et l'afficher
ImageProduit est un Buffer
Img est Image
ImageProduit = Decrypte(mySQLLitColParNom(1, "IMAGE"),"dc")
Img = dChargeImage(ImageProduit)
Classe Commande
ClassCommande est une Classe
hérite DBconnect
PRIVATE
ClientId est une entier
ClientNom, ClientEmail, ClientAdresse, ClientContact sont des chaînes
ProduitId, ProduitQuantite sont des entiers
ProduitNom, ProduitPrix, ProduitImage, TotalSomme sont des chaînes
//Variable Buffer
BufferImage est une Buffer
FIN
PROCÉDURE Constructeur(IdClient, NomClient, EmailClient, AdresseClient, ContactClient, IdProduit, NomProduit, QuantiteProduit, PrixProduit, ImageProduit, SommeTotal)
//Client
ClientId = IdClient
ClientNom = NomClient
ClientEmail = EmailClient
ClientAdresse = AdresseClient
ClientContact = ContactClient
//Produit
ProduitId = IdProduit
ProduitNom = NomProduit
ProduitQuantite = QuantiteProduit
ProduitPrix = PrixProduit
//Encoder l'image en base 64
BufferImage = dSauveImageJPEG(ImageProduit,enMémoire)
ProduitImage = Encode(BufferImage,encodeBASE64)
TotalSomme = SommeTotal
PROCÉDURE Commander()
SQLRequete = "INSERT INTO commande SET IDCLIENT = '" + ClientId + "', NOMCLIENT = '"...
+ ClientNom + "', ADRESSE = '" + ClientAdresse + "', EMAIL = '" + ClientEmail + "', TELEPHONE = '"...
+ ClientContact + "', IDPRODUIT = '" + ProduitId + "', NOMPRODUIT = '" + ProduitNom + "', PRIX = '"...
+ ProduitPrix + "', QUANTITE = '" + ProduitQuantite + "', IMAGE = '" + ProduitImage + "', TOTAL = '" + TotalSomme + "'"
SI mySQLExec(SQLRequete, 1) ALORS
Info("Votre commande est effectué")
FIN
Classe RecupProduit
ClassRecupProduit est une Classe
hérite DBconnect
PUBLIC
ReqRcupProduit est une chaîne
ExecuReq est un entier
ImageProduit est une Buffer
FIN
PROCÉDURE ListeProduit()
ReqRcupProduit = "SELECT * FROM produits ORDER BY ID DESC"
ExecuReq = mySQLExec(ReqRcupProduit, 1)
ZoneRépétéeSupprimeTout(ClientProduit.ZoneClientProduit)
TANTQUE mySQLFetch(1)
ImageProduit = Décode(mySQLLitColParNom(1, "IMAGE"),encodeBASE64)
ZoneRépétéeAjouteLigne(ClientProduit.ZoneClientProduit, ImageProduit, mySQLLitColParNom(1, "NOM"), mySQLLitColParNom(1, "PRIX"), mySQLLitColParNom(1, "ID"))
ZoneRépétéeAffiche(ClientProduit.ZoneClientProduit, taDébut)
FIN
Classe sélection produit
ClassSelectionProduit est une Classe
hérite DBconnect
PUBLIC
nomp, prixp, datep sont des chaînes
imageProduit est un Buffer
reqRecherche est une chaîne
GLOBAL
idp est un entier
FIN
PROCÉDURE ProduitChoisi(numProduit)
reqRecherche = "SELECT * FROM produits WHERE ID = '" + numProduit + "'"
mySQLExec(reqRecherche, 1)
mySQLGetNumRows(1)
SI mySQLFetch(1) ALORS
nomp = mySQLLitColParNom(1,"NOM")
prixp = mySQLLitColParNom(1, "PRIX")
datep = mySQLLitColParNom(1, "DATEPUB")
imageProduit = Décode(mySQLLitColParNom(1, "IMAGE"),encodeBASE64)
idp = mySQLLitColParNom(1, "ID")
FIN
Classe commande effectué
CommendeEffectue est une Classe
hérite DBconnect
PUBLIC
ImageProduit est une Buffer
FIN
PROCÉDURE CommandeListe()
SQLRequete = "SELECT * FROM commande ORDER BY IDCOMMANDE DESC"
mySQLExec(SQLRequete, 1)
ZoneRépétéeSupprimeTout(Commande.ZoneCommande)
TANTQUE mySQLFetch(1)
ImageProduit = Décode(mySQLLitColParNom(1, "IMAGE"),encodeBASE64)
ZoneRépétéeAjouteLigne(Commande.ZoneCommande, mySQLLitColParNom(1, "NOMCLIENT"), mySQLLitColParNom(1, "EMAIL"), mySQLLitColParNom(1, "TELEPHONE"), mySQLLitColParNom(1, "ADRESSE"), ImageProduit, mySQLLitColParNom(1, "NOMPRODUIT"), mySQLLitColParNom(1, "PRIX"), mySQLLitColParNom(1, "QUANTITE"), mySQLLitColParNom(1, "TOTAL"))
ZoneRépétéeAffiche(Commande.ZoneCommande, taDébut)
FIN
Classe modification Produit
ModificationProduit est une Classe
hérite DBconnect
PUBLIC
nomProduit est une chaîne
PrixProduit est une chaîne
DatePub est une chaîne
NomImage est une chaîne
IdProduit est un entier
reqModifier est une chaîne
//Variable Buffer
BufferImage est une Buffer
FIN
PROCÉDURE Constructeur(ModifNom, ModifPrix, ModifDate, ModifImage, idP)
nomProduit = SansCaractère(ModifNom,"?!*~~[]<>")
PrixProduit = SansCaractère(ModifPrix,"?!*~~[]<>")
DatePub = ModifDate
BufferImage = dSauveImageJPEG(ModifImage,enMémoire)
NomImage = Encode(BufferImage,encodeBASE64)
IdProduit = idP
PROCÉDURE ModifierPoduit()
reqModifier = "UPDATE produits SET NOM = '" + nomProduit + "', PRIX = '" + PrixProduit + "', DATEPUB = '" + DatePub + "', IMAGE = '" + NomImage + "' WHERE ID = '" + IdProduit + "'"
mySQLExec(reqModifier, 1)
Classe nouveau Produit
NouveauProduit est une Classe
hérite DBconnect
PUBLIC
NomProduit est une chaîne
PrixProduit est une chaîne
DatePub est une chaîne
NomImage est une chaîne
ReqNouveauProduit est une chaîne
//Variable Buffer
BufferImage est une Buffer
FIN
PROCÉDURE Constructeur(NomP, PrixP, DateP, ImageP)
NomProduit = SansCaractère(NomP,"?!*~~[]<>")
PrixProduit = SansCaractère(PrixP,"?!*~~[]<>")
DatePub = DateP
BufferImage = dSauveImageJPEG(ImageP,enMémoire)
NomImage = Encode(BufferImage,encodeBASE64)
PROCÉDURE AjoutProduit()
ReqNouveauProduit = "INSERT INTO produits SET NOM = '" + NomProduit + "', PRIX = '" + PrixProduit + "', DATEPUB = '" + DatePub + "', IMAGE = '" + NomImage + "'"
//exécution de la requête
mySQLExec(ReqNouveauProduit,1)
Info("Produit ajouté")
Classe recupProduitModifier
recupProduitModifier est une Classe
hérite DBconnect
PUBLIC
nomp, prixp, datep, imageProduit sont des chaînes
reqRecherche est une chaîne
GLOBAL
idp est un entier
FIN
PROCÉDURE ProduitPrepare(numProduit)
reqRecherche = "SELECT * FROM produits WHERE ID = '" + numProduit + "'"
mySQLExec(reqRecherche, 1)
mySQLGetNumRows(1)
SI mySQLFetch(1) ALORS
nomp = mySQLLitColParNom(1,"NOM")
prixp = mySQLLitColParNom(1, "PRIX")
datep = mySQLLitColParNom(1, "DATEPUB")
imageProduit = Décode(mySQLLitColParNom(1, "IMAGE"),encodeBASE64)
idp = mySQLLitColParNom(1, "ID")
FIN
Classe RecupToutProduit
RecupToutProduit est une Classe
hérite DBconnect
PUBLIC
ReqRcupProduit est une chaîne
ExecuReq est un entier
ImageProduit est une Buffer
FIN
PROCÉDURE ListeProduit()
ReqRcupProduit = "SELECT * FROM produits ORDER BY ID DESC"
ExecuReq = mySQLExec(ReqRcupProduit, 1)
ZoneRépétéeSupprimeTout(adminListProduit.ZoneProduits)
TANTQUE mySQLFetch(1)
ImageProduit = Décode(mySQLLitColParNom(1, "IMAGE"),encodeBASE64)
ZoneRépétéeAjouteLigne(adminListProduit.ZoneProduits, ImageProduit, mySQLLitColParNom(1, "NOM"), mySQLLitColParNom(1, "PRIX"), mySQLLitColParNom(1, "DATEPUB"), mySQLLitColParNom(1, "ID"))
ZoneRépétéeAffiche(adminListProduit.ZoneProduits, taDébut)
FIN