travaux-pratiques

LangagePhpMySql

T.P. phpmyadmin - mysql - php (Partie 1)


On (je) travaille avec uwamp, vous travaillez avec xampp.
On va sur phpmyadmin (root - root ATTENTION sur xampp le mot de passe est vide '' )
On se propose de travailler avec la base de données food
Qu'il faudra importer en utilisant le langage SQL.

<?php
-- phpMyAdmin SQL Dump
-- version 4.5.4.1
-- http://www.phpmyadmin.net
--
-- 
Client :  localhost
-- Généré le :  Mer 04 Décembre 2024 à 09:20
-- Version du serveur :  5.7.11
-- Version de PHP :  5.6.18

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 utf8mb4 */;

--
-- 
Base de données :  `food`
--

-- --------------------------------------------------------

--
-- 
Structure de la table `aliment`
--

CREATE TABLE `aliment` (
  `
idint(11NOT NULL,
  `
nomvarchar(100NOT NULL,
  `
marquevarchar(100) DEFAULT NULL,
  `
sucrefloat DEFAULT NULL,
  `
caloriesint(11NOT NULL,
  `
graissesfloat DEFAULT NULL,
  `
proteinesfloat DEFAULT NULL,
  `
biotinyint(1) DEFAULT '0'
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- 
Contenu de la table `aliment`
--

INSERT INTO `aliment` (`id`, `nom`, `marque`, `sucre`, `calories`, `graisses`, `proteines`, `bio`) VALUES
(1'pomme''sans marque'19.1720.20.40),
(
2'poire''sans marque'27.51340.21.11),
(
3'banane''chiquita'241010.31.10),
(
4'jambon''herta'0.2340.86.60),
(
5'compote''andros'115100.50),
(
6'steak haché''charal'0.8684.84.80),
(
7'saumon''guyader'020612.322.10),
(
8'haricots verts''bonduelle'5.8250.11.50),
(
9'riz''oncle benz'28.21300.32.70),
(
10'pâtes completes''barilla'643532.7141),
(
11'blanc de dinde''père dodu'0.6980.9220),
(
12'filet de poulet''le gaulois'01211.826.20),
(
13'muesli''bjorg'26.517053.51),
(
14'café''carte noire'00000),
(
15'jus d\'orange''innocent'167401.60),
(
16'jus de pomme''andros'241000.20.21),
(
17'pomme de terre''doréac'21.11040.22.80),
(
18'oeuf''naturalia'0.4745.16.51),
(
19'baguette''sans marque'36.11851.27.50),
(
20'lait d\'amande''bjorg'6.1805.31.51);

-- --------------------------------------------------------

--
-- 
Structure de la table `langue`
--

CREATE TABLE `langue` (
  `
idint(11NOT NULL,
  `
nomvarchar(100NOT NULL
ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

--
-- 
Contenu de la table `langue`
--

INSERT INTO `langue` (`id`, `nom`) VALUES
(1'français'),
(
2'anglais');

--
-- 
Index pour les tables exportées
--

--
-- 
Index pour la table `aliment`
--
ALTER TABLE `aliment`
  
ADD PRIMARY KEY (`id`);

--
-- 
Index pour la table `langue`
--
ALTER TABLE `langue`
  
ADD PRIMARY KEY (`id`);

--
-- 
AUTO_INCREMENT pour les tables exportées
--

--
-- 
AUTO_INCREMENT pour la table `aliment`
--
ALTER TABLE `aliment`
  
MODIFY `idint(11NOT NULL AUTO_INCREMENTAUTO_INCREMENT=21;
--
-- 
AUTO_INCREMENT pour la table `langue`
--
ALTER TABLE `langue`
  
MODIFY `idint(11NOT NULL AUTO_INCREMENTAUTO_INCREMENT=3;
/*!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 */;


Pour simplifier nous allons accéder à la base de données avec l'utilisateur root/root
ce qui n'est pas à faire en production pour des raisons de sécurité évidente.

Première étape, afficher une colonne (le nom de chaque aliment) de la base de données :

<?php

try {
$bdd = new PDO('mysql:host=localhost;dbname=food;charset=utf8''root''root');
}

catch(
Exception $e)
{
         die(
'Erreur : '.$e->getMessage());
}

$sqlQuery 'SELECT * FROM aliment';
$recipesStatement $bdd->prepare($sqlQuery);
$recipesStatement->execute();
$recipes $recipesStatement->fetchAll();

// On affiche chaque produit un à un
foreach ($recipes as $recipe) {
?>
    <p><?php echo $recipe['nom']; ?></p>
<?php
}
?>


Mais bien entendu on peut afficher toutes les colonnes de la table de la manière suivante :

<?php

try {
$bdd = new PDO('mysql:host=localhost;dbname=food;charset=utf8''root''root');
}

catch(
Exception $e)
{
         die(
'Erreur : '.$e->getMessage());
}

$sqlQuery 'SELECT * FROM aliment';
$recipesStatement $bdd->prepare($sqlQuery);
$recipesStatement->execute();
$recipes $recipesStatement->fetchAll();

// On affiche chaque produit un à un
echo("Nom - marque - sucre - calories - graisses - proteines - bio");
foreach (
$recipes as $recipe) {
?>
    <p><?php echo ($recipe['nom'] . 
" - " $recipe['marque'] .
" - " $recipe['sucre'] .
" - " $recipe['calories'] .
" - " $recipe['graisses'] .
" - " $recipe['proteines'].
" - " $recipe['bio'] ); ?></p>
<?php
}
?>






Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]