| Les
chapitres de la formation en ligne PHP - MySQL |
| 1.
Introduction
au Php
|
| 2. Installer et
utiliser easyphp
|
| 3. Première
commande PHP
|
| 4. Fonctions en
PHP
|
| 5. Les tableaux
|
| 6. Fonctions sur
les variables
|
| 7. Formulaires Mail
|
|
8. Base de donnée
MySQL avec easyphp
|
| 9. Première
application de Mysql
|
| 10. Gestion des
tables par PHP
|
| 10.a Exercice:
formulaire de contact
|
| 11. Mise en page
PHP - HTM: include() - require()
|
| 12. Création
automatique de la table utilisateur
|
| 13. Formulaire et
vérification des données
|
| 14. Insertion des
nouveaux membres
|
| 15. Gestion des
catégories
|
| 16. Liste de
choix déroulante
|
|
17. Modification
des tables MySQL
|
|
18. Enregistrer
une image via un formulaire
|
| 19. Formulaire
d'insertion
|
| 20. Affichage des
petites annonces
|
| 21. Filtrage des
annonces (1)
|
| 23. Exercice: gérer
des news
|
| 24. Utilisation
des Cookies
|
| 25. Gestion
fichiers et Dossiers (source et FTP)
|
| 26. Cryptage et
décryptage de mots de passe
|
| 27. Base
relationnelle, méthodes Left et Join. |
| Divers |
| Formation
référencement en ligne,
positionnez votre site sur Google, MSN, Yahoo, ... |
| Les
feuilles de styles, utilisation du CSS. |
| FrontPage
et l'HTML, cours en ligne |
| Le
fichier Apache .htaccess, configuration serveur, URL
Rewriting, accès répertoires. |
|
17. Modification d'une table MySql par
PHP
1 Introduction - 2. La commande ALTER - 3.
Les champs à remplir
L'affichage de nos différentes catégories du
précédent chapitre va maintenant nous permettre de créer le formulaire
d'entrée des annonces. La structure de la table a été crée avec les champs
suivants. Vous l'avez remarqué, le champ reprenant la catégorie du bien n'est
pas repris dans la table, ni le code utilisateur de celui qui a inséré
l'annonce, il va nous falloir le rajouter. Ce chapitre va nous permettre
d'étudier les modifications sur une table MySql existante.
| |
type |
primary-key, Index |
remarque |
Instruction SQL |
| code |
numérique, integer |
Primary-key |
auto incrémentation |
code int primary key NOT NULL auto_increment |
| titre |
VARCHAR(120) |
|
titre de l'annonce limitée à 120 caractères, insensible
à la casse |
titre varchar(120) not null |
| description |
BLOB |
|
texte limité à 65535 caractères |
description blob not null |
| photo |
varchar(255) |
|
adresse et nom de la photo, 255 caractères |
photo varchar(255) |
| Ville |
VARCHAR(40) |
index |
limité à 40 caractères |
ville varchar(40), index(ville) |
| Pays |
type enum |
|
choix entre Belgique, France, Luxembourg |
pays enum('Belgique','France','Luxembourg') |
| prix |
decimal(10,2) |
|
décimal avec 2 chiffres derrière la virgule |
prix decimal(8,2) not null |
| dateinsertion |
date |
|
date courte |
dateinsertion date |
| telephone |
varchar(15) |
|
|
telephone varchar(15) |
| mail |
varchar(30) |
|
|
mail varchar(30) |
La commande ALTER TABLE permet d'insérer, de
modifier ou de supprimer un champ dans une table existante. Nous ne verrons pas
toutes les commandes dans ce cours, mais voici l'ensemble des syntaxes.
| ALTER [IGNORE] TABLE Nom_table
alter_spec [, alter_spec ...]
où: Alter_specification=
ADD [COLUMN]
create_definition [FIRST | AFTER column_name ]: ajouter une colonne
après (AFTER) une autre colonne
ou ADD INDEX [Nom_index] (index_nom_col,...):
ajout d'un index à la colonne Index_nom_col.
ou ADD PRIMARY KEY (index_nom_col,...):
ajoute une clé primaire à la colonne index_nom_col
ou ADD UNIQUE [Nom_index]
(index_Nom_col,...): index unique pour le champ Nom_index
ou ALTER [COLUMN] Nom_col {SET DEFAULT
literal | DROP DEFAULT}
ou CHANGE [COLUMN] old_Nom_col
create_definition
ou MODIFY [COLUMN] create_definition
ou DROP [COLUMN] Nom_col: supprime la
colonne Nom_col
ou DROP PRIMARY KEY: supprime la clé
primaire
ou DROP INDEX nom_cle: supprime l'index
nom_cle
ou RENAME [AS] new_Nom_table: renome la
table |
Plusieurs modifications peuvent être faite sur la même table avec la même
requête SQL, chaque modification étant séparée par une ,.
IGNORE est une extension MySQL de SQL et contrôle la
manière dont Alter Table gère les clés dupliquées: Si l'option est
omise, la modification est abordée. Dans le cas où cette option est utilisée,
seule la première colonne est conservée, les autres colonnes en conflit sont
supprimées.
Le champ à insérer est:
| uid-cat |
smallint(6) |
numéro de la catégorie |
| uid-util |
int(10) |
numéro utilisateur |
| tel |
char(1) |
téléphone utilisateur affiché (O ou N) |
Notre requête MySQL d'insertion de champ devient:
<?php
require('includes/start.php');
Mysql_select_db('ybet');
$requete="alter table contenu add uid_cat smallint(6) NOT NULL, add uid_util int(10) NOT
NULL, add tel char(1)";
$erreur=mysql_query($requete);
require('includes/stop.php');
?>
|
-
Code sera rempli automatiquement
(auto-indent)
-
Titre est le titre de l'annonce, limité
à 120 caractères
-
Description est limité à 65535 caractères
-
Photo nécessite l'adresse de la photo,
mais également de télécharger la photo directement sur le site
-
Ville peut être inséré par
l'utilisateur ou repris de fiche utilisateur. Dans notre table MEMBER, nous
n'avons pas obligé à rentrer une valeur. Nous proposerons donc par défaut
celle de l'utilisateur.
-
Pays est une liste de choix (Belgique,
France, Luxembourg). Obligatoire pour le membre, nous reprendrons celle-ci
-
Prix est la valeur du bien, elle
peut-être omise le cas échéant.
-
dateinsertion est directement reprise par
le système
-
Téléphone, obligatoire dans la fiche du
membre est repris dans l'annonce mais peut-être masqué par l'utilisateur
(TEL)
-
TEL permet à l'utilisateur d'afficher ou
non son numéro de téléphone
-
Mail est repris de la fiche du membre mais
pourra être supprimé puisqu'il apparaîtra dans la fiche du membre
-
uid-cat est un choix au moment de la création
de l'annonce avec la méthode du chapitre précédant par liste
déroulante
-
uid-util est le numéro de l'utilisateur qui
dépose l'annonce.
L'ensemble ne pose pas trop de problèmes, seul le
téléchargement de l'image n'as pas encore été étudié. Il sera alors
sauvegardé directement sur le serveur. Cette solution, intéressante,
nécessite quand même quelques précautions, notamment au niveau de la taille du
fichier: pour l'espace disque mais aussi pour la sécurité du système. La
commande HTML de téléchargement ne limite pas les fichiers au format images.
Un internaute mal-honnête pourrais également insérer un virus ou même un
script php. La majeur partie sera les tests de téléchargements (type de
fichier, taille, ...). La programmation du téléchargement d'image sera le chapitre suivant.
|