.SQL de primFX

Ce topic a été résolu
Florian

Florian Le 15 avril 2016 à 16:41 (Édité le 25 janvier 2019 à 17:50)

Hello,

J'ai regarder les vidéos sur le forum de PrimFX, mais le problème ce que quasiment a chaque vidéos il modifier le .sql, donc j'ai pas du tout suivis sur ça donc je me demande si une personne a bien reussir a suivre le tuto et pourrais me l'envoyer x)

Merci :3
Doudou

Doudou Le 15 avril 2016 à 18:06

Florian, je te conseil pas de faire du copier coller car sinon tu auras du code d'un peu tout le monde mais tu auras rien appris.

PRIMFX explique le PHP orienté objet, 
PHP peut être sois procédurale, comme tout nouveau les nouveaux développeurs vont utiliser php, sois orienté objet plus propre et professionnel.
L'orienté objet est assez difficile à prendre en main car nous devons réfléchir autrement, exemple pour SQL.

En procédurale tu vas faire ceci :

$bdd = new mysql_connect($serveur, $user, $pass, $base);
$bdd->set_charset("utf8");
if ($bdd->connect_error) { die('Erreur de connexion ('.$bdd->connect_error.')'. $bdd->connect_error); }

C'est pas très lisible 😀 donc pour cela nous allons créer une class sql qui va répertorier tout les fonctions de la bdd comme un fetch_All, query...
Pourquoi faire ça, déjà pour la sécurité, l’optimisation, le rangement... il faut toujours ce dire que quelques peut passer dernière toi pour règler un problème donc ton code dois être niquel et bien documenté.
A la fin ça donnera ça,

$bdd->sql_connect();
$bdd->sql_query("SELECT * FORM table WHERE id = ?");
$bdd->sql_disconnect();
$bdd->sql_fetch_all();

On ouvre une connexion vers la bdd, on envoi la requête, on ferme la connexion et on fetch. Pour comprendre je te conseil de regarder la documentation PHP function MYSQL ou PDO 😀. Tu vas toujours reprendre les mêmes tables pour plusieurs car elle change pas comme sql, form(html)... tu les améliores tout le temps.

Le PDO est encore autre chose mais je te conseil de regarder function mysql avant d'attaquer le pdo.
J’espère que j'ai pu t'aider 😉 
Florian

Florian Le 15 avril 2016 à 18:11

Bonjour,

Ce n'est pas ça la question, c'est sur le tuto du Forum il modifie quasiment a chaque épisode le .sql est je me suis perdu, mais je croit que j'ai réussir a reprendre le fil, je regarde ça et je modifie ce message au cas ou 😉
Doudou

Doudou Le 15 avril 2016 à 18:16

Oui mais je te dis qu'il va tout le temps le changer car c'est un fichier que tu vas changer sur chaque Project et que tu vas copier coller à chaque fois. Mais si tu as repris le fil t'en mieux 😀 Bon apprentissage alors
PaulLavieille

PaulLavieille Le 15 avril 2016 à 18:16

@Florian Si tu réussi à le faire, je le veux bien haha ^^
Florian

Florian Le 15 avril 2016 à 18:28 (Édité le 15 avril 2016 à 18:37)

@PauLavielle faudrait d'abord que j'arrive au PHP x)

EDIT c'est bon j'extrait tout
PaulLavieille

PaulLavieille Le 15 avril 2016 à 18:33

Ah :/
Doudou

Doudou Le 15 avril 2016 à 18:40

Vous voulez quoi au final ?
Florian

Florian Le 15 avril 2016 à 18:40

-- phpMyAdmin SQL Dump
-- version 4.0.10.7
-- http://www.phpmyadmin.net
--
-- Client: localhost:3306
-- Généré le: Ven 15 Avril 2016 à 18:38
-- Version du serveur: 10.0.24-MariaDB
-- Version de PHP: 5.4.31
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- Base de données: `forum`
--
-- --------------------------------------------------------
--
-- Structure de la table `f_categories`
--
CREATE TABLE IF NOT EXISTS `f_categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nom` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
--
-- Contenu de la table `f_categories`
--
INSERT INTO `f_categories` (`id`, `nom`) VALUES
(1, 'Plainte et réclamation');
-- --------------------------------------------------------
--
-- Structure de la table `f_messages`
--
CREATE TABLE IF NOT EXISTS `f_messages` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_topic` int(11) NOT NULL,
  `id_posteur` int(11) NOT NULL,
  `date_heure_post` datetime NOT NULL,
  `date_heure_edition` datetime NOT NULL,
  `meilleure_reponse` int(1) NOT NULL,
  `contenu` text NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
--
-- Contenu de la table `f_messages`
--
INSERT INTO `f_messages` (`id`, `id_topic`, `id_posteur`, `date_heure_post`, `date_heure_edition`, `meilleure_reponse`, `contenu`) VALUES
(1, 1, 9, '2016-04-15 18:35:14', '0000-00-00 00:00:00', 0, 'test'),
(2, 1, 9, '2016-04-15 18:36:14', '0000-00-00 00:00:00', 0, 'gtrgtrg'),
(3, 1, 9, '2016-04-15 18:36:45', '0000-00-00 00:00:00', 0, 'vfvdfvfdvfdv'),
(4, 1, 9, '2016-04-15 18:36:50', '0000-00-00 00:00:00', 0, 'bgfbgf'),
(5, 1, 9, '2016-04-15 18:36:59', '0000-00-00 00:00:00', 0, 'bgfb'),
(6, 1, 9, '2016-04-15 18:37:01', '0000-00-00 00:00:00', 0, 'bgfb'),
(7, 1, 9, '2016-04-15 18:37:07', '0000-00-00 00:00:00', 0, 'bgb');
-- --------------------------------------------------------
--
-- Structure de la table `f_souscategories`
--
CREATE TABLE IF NOT EXISTS `f_souscategories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_categorie` int(11) NOT NULL,
  `nom` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `f_souscategories`
--
INSERT INTO `f_souscategories` (`id`, `id_categorie`, `nom`) VALUES
(1, 1, 'Plainte'),
(2, 2, 'Réclamation');
-- --------------------------------------------------------
--
-- Structure de la table `f_topics`
--
CREATE TABLE IF NOT EXISTS `f_topics` (
  `id` int(11) NOT NULL,
  `id_createur` int(11) NOT NULL,
  `sujet` text NOT NULL,
  `contenu` text NOT NULL,
  `date_heure_creation` datetime NOT NULL,
  `resolu` tinyint(1) NOT NULL,
  `notif_createur` tinyint(1) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Contenu de la table `f_topics`
--
INSERT INTO `f_topics` (`id`, `id_createur`, `sujet`, `contenu`, `date_heure_creation`, `resolu`, `notif_createur`) VALUES
(1, 9, 'Plainte envers Le test', 'jsute le test', '2016-04-15 18:14:09', 0, 0),
(0, 9, 'Un simple test', 'grtgtr', '2016-04-15 18:31:39', 0, 0);
-- --------------------------------------------------------
--
-- Structure de la table `f_topics_categories`
--
CREATE TABLE IF NOT EXISTS `f_topics_categories` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `id_topic` int(11) NOT NULL,
  `id_categorie` int(11) NOT NULL,
  `id_souscategorie` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
--
-- Contenu de la table `f_topics_categories`
--
INSERT INTO `f_topics_categories` (`id`, `id_topic`, `id_categorie`, `id_souscategorie`) VALUES
(1, 0, 1, 1),
(2, 1, 1, 1);
-- --------------------------------------------------------
--
-- Structure de la table `membres`
--
CREATE TABLE IF NOT EXISTS `membres` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `users` varchar(255) NOT NULL,
  `password` text NOT NULL,
  `mail` text NOT NULL,
  `confirmed` int(11) NOT NULL,
  `key_confirmed` text NOT NULL,
  `grade` int(11) NOT NULL DEFAULT '0',
  `banni` int(11) NOT NULL DEFAULT '0',
  `date_ban` int(11) NOT NULL,
  `ip_creation` text NOT NULL,
  `date_inscription` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;
--
-- Contenu de la table `membres`
--
INSERT INTO `membres` (`id`, `pseudo`, `password`, `mail`, `confirmed`, `key_confirmed`, `grade`, `banni`, `date_ban`, `ip_creation`, `date_inscription`) VALUES
(9, 'test', 'mdp', 'monemail@gmail.com', 1, 'k7vnwwkwuq14pmjv4hb12rm6rv2x7x', 6, 0, 0, '1.1.1.1', 2147483647);
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

PS pour la table membres, j'ai mis la mienne donc je sais pas si c'est pseudo pour PrimFX ( je croit de base pour moi c'est users :x 
Nobodief

Nobodief Le 15 avril 2016 à 21:57 (Édité le 15 avril 2016 à 22:01)

@doudou

Salut, il est vrai que le php orienté objet est beaucoup plus esthétique, après dire que c'est plus professionnelle cela reste à voir, de toute façon si ont part sur le principe, ce qui est le plus professionnelle en 2016 (de manière général) c'est de nous sortir tout sur du wordpress ou sur l'utilisation de framework tel que symphony 2 où tout est déjà fait.

Personnellement je pense que la méthode orienté objet est à utiliser dans certain cas, il n'est pas nécessaire de l'employer pour un simple blog ou un blog/forum comme primfx, mais plutôt pour des sites E-commerce ou les jeux de gestion en ligne par navigateur ou même encore les API.

Il me semble que mysql_connect est obsolète désormais il faut utiliser mysqli.

$bdd = new mysqli_connect($serveur, $user, $pass, $base); 
$bdd->set_charset("utf8"); 
if ($bdd->connect_error) { die('Erreur de connexion ('.$bdd->connect_error.')'. $bdd->connect_error); } 
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte