Tutorial PHP - MySql

Le fourre-tout. Parlez de la recette de la tarte au concombre ici

Modérateur : Modz

Répondre
Avatar du membre
Sephiroth Lune
Ze Freaky Stuff
Messages : 14286
Enregistré le : 18 mai 2003 à 22h45
Localisation : Lyon (69)
Contact :

Tutorial PHP - MySql

Message par Sephiroth Lune »

•º°”˜¨ Définitions du PHP et MySql ¨˜”°º•

le php est un language qui va s'executer sur le serveur, c'est à dire que tu peux mettre toutes les infos que tu veux dans des balises <?php et ?> (au passage, je te conseille de bien mettre <?php, car même si <? suffit, c'est une configuration du serveur qui autorise ce type de balise. si un jour tu changes de serveur et qu'il ne l'accepte plus, t'aura l'air con...), aucun utilisateur ne pourra aller lire ce qu'il s'y trouve. quand un utilisateur va vouloir ouvrir une page .php, le serveur va scaner toutes les balises <?php et ?> pour recréer dynamiquement une page, en fonction de ton code php :0thumbsup: la seule chose qui sera copiée dans le code html de la page (et donc visible par l'utilisateur), c'est ce que tu renverra avec la commande echo "mon texte"; :0biggrin: il faut d'ailleurs savoir que les chaines de caractères peuvent être encadrées par 2 types de symboles: " et ' , le premier étant pour effectuer des opérations sur la chaine avant de l'afficher ou de l'assigner à une variable (par exemple: $var = "Nous sommes le: $date" remplacera $date par sa valeur, avant d'assigner la totalité du texte à $var :0thumbsup: ), le second étant pour afficher totalement ce qui est contenu dans les symboles ' ', sans aucune opération (par exemple, $var = 'Nous sommes le: $date' affichera le texte exactement tel quel, sans remplacer $date!)
il faut également savoir que quelques caractères ont besoin d'un "caractère d'échapement" qui est le . ça peut très bien se comprendre sur des chaines comme suit:
echo 'j'habite à Voiron';
si tu l'écris comme au dessus, tu verras que le ' après le j "ferme" la chaine de caractère, alors que toi tu voudrais bien l'afficher dans ton code html. il faut donc utiliser :
echo 'j''habite à Voiron';
ce qui affichera réellement j'habite à Voiron :0thumbsup:

Mysql est une base de données ultra simpliste, qui ne connait que quelques commandes simples. ça permet une très bonne rapidité, et les commandes présentes permettent de faire à peu près ce qu'on veut.
la base mysql c'est très simple à utiliser, pour peu que tu ai accès à PhpMyAdmin sur ton hébergeur. c'est un programme de gestion de la base de données vraiment très bien fouttu, tu peux presque tout faire avec.
quelques mots de vocabulaire, pour qu'on se comprenne bien (screens de PhpMyAdmin):
voici où sont indiquées les noms des tables:
Image

voila la structure de la base de données:
Image

•º°”˜¨ Créer une base de données ¨˜”°º•

il faudra donc commencer par créer une base de donnée, en faisant attention à quelques optimisations possibles. sur une toute petite base, l'optimisation n'est pas franchement à prendre en compte, mais si tu comptes avoir bcp de données, tu peux voir une sacrée différence en ne changeant qu'un paramètres de ta base :0psycho:
tutorial de création de la base
tu verras donc tous les types de champ que tu peux avoir, avec leurs limites et leur rapidité.
je te conseillerais de mettre un champ 'id' dans chaque table, avec les paramètres TINYINT, UNSIGNED, et AUTO_INCREMENT. TINYINT sont des chiffres allant de 0 à 255 en non signé (c'est à dire qu'on ne peut pas avoir de chiffres négatifs), UNSIGNED indique qu'on ne veux pas avoir de chiffres négatifs (dans le cas contraire, TINYINT ira de -128 à +127). AUTO_INCREMENT veut dire qu'à chaque fois que tu ajoutes une ligne dans ta table, ce chiffre sera automatiquement généré par la base de données. si par exemple tu as 3 lignes, avec id=1, id=2 et id=4, tu ajoutes une ligne, id sera = 5 sans rien que tu touches :0thumbsup: ce champ te permettra de lire tes lignes dans un ordre chronologique avec php :0shy:

•º°”˜¨ Commandes PHP de base ¨˜”°º•

une fois ta base crée, tu dois faire une page .php pour pouvoir la lire :0razz: il faut connaitre quelques commandes php, mais rien de bien sorcier :0blush:
mysql_connect -> pour se connecter à la base, obligatoire avant toute opération :0razzy: exemple: mysql_connect("localhost", "login_compte", "pass_compte"); avec le premier paramètre = localhost (99% du temps, c'est très rare que le serveur change ça), login_compte = le login de ton accès à la base (99% du temps le login de ton accès ftp), pass_compte = le password de l'accès à la base (99% du temp le pass de l'accès ftp).
mysql_select_db -> utile uniquement pour les hébergeurs qui te proposent la création de plusieurs bases SQL sur le même compte, souvent les hébergeurs payants. free n'en autorise qu'une seule, donc cette fonction n'est pas utile :0biggrin:
mysql_query -> c'est ici que tu vas envoyer des commandes à ta base sql, qui te répondra comme ceci: $resultat = mysql_query('ma commande'); donc dans la variable $resultat.
mysql_result -> permet d'utiliser les résultats de mysql_query
mysq_num_rows -> permet de savoir combien de lignes sont renvoyées par mysql_query
mysql_close -> permet de déconnecter de la base, pratiquement inutile sachant que si tu l'a oublié à la fin d'une page, il sera automatiquement généré par le serveur. ça peut éventuellement être utilisé pour déconnecter de la base au milieu de la page si tu ne t'en sert plus après, m'enfin bon... je le met par soucis de précision du code plus que d'utilité on va dire :0rolleyes:

•º°”˜¨ Exemples d'interfacage PHP - MySql ¨˜”°º•

Code : Tout sélectionner

<?php
mysql_connect('localhost', 'test', 'pass');
$resultat = mysql_query('SELECT * FROM admin_connect ORDER BY id');
$compteur = mysql_result($resultat, 0, 'login');
echo $compteur;
mysql_close();
?>
explications du code:
- connection à la base avec mysql_connect
- recherche des informations de la table admin_connect:
SELECT * -> prend tous les champs
FROM admin_connect -> de la table admin_connect
ORDER BY id -> permet de classer chronologiquement les données en fonction du champ id
- extraction d'infos avec mysql_result:
$resultat -> parmis toutes les informations de la table, reçues avec mysql_query
0 -> numéro de la ligne voulue. les lignes commencent à la ligne 0 et finissent par mysql_num_rows($resultat)
'login' -> nom du champ d'où l'information sera tirée.

ici, echo affichera test, puisque c'est la ligne 0 du champ login :0thumbsup: tu vois donc bien ici que le champ id n'est absolument pas le numéro de la ligne, il ne faut pas confondre. les numéros de lignes se suivent (de 0 à mysql_num_rows($resultat) donc), alors que le champ id peut très bien avoir des "trous". imagine que tu fasses 3 champs, id=1, id=2, id=3. ensuite tu delete le champ 2, ça te donne 2 lignes avec id=1 et id=3. tu en ajoutes une, ça te fera 3 lignes, avec id=1, id=3 et id=4 :0thumbsup: ça veut dire que l'AUTO_INCREMENT ne comble pas les "trous", mais incrémente bien à partir du plus haut chiffre :0psycho:

question d'optimisation, on aurait pu faire comme ceci pour gagner en rapidité de lecture:

Code : Tout sélectionner

<?php
mysql_connect('localhost', 'test', 'pass');
$resultat = mysql_query('SELECT login FROM admin_connect ORDER BY id');
$compteur = mysql_result($resultat, 0, 'login');
echo $compteur;
mysql_close();
?>
tu vois que j'ai changé mon SELECT * en SELECT login, ce qui permet de ne lire que le champ login, au lieu de tous les lire :0thumbsup: m'enfin c'est pas franchement très important pour des bases de données de petite taille, te prend pas la ête, c'était juste pour info :0biggrin:

•º°”˜¨ Quelques liens utiles ¨˜”°º•

PHP France, surement le meilleur site que je connaisse sur le php. il n'est pas très complet, mais toutes ses aides sont très bien expliquées :0thumbsup:
http://www.phpfrance.com/

PHP Débutant, j'aime pas du tout leur site (explications trop complexe pour des choses simples), mais leur forum est très très actif. n'oublie surtout pas de dire bonjour avant de poser ta question, parceque c'est aussi de vraies têtes de chiens qui s'emballent à la moindre erreur... très chiant, mais permet d'avoir des infos rapidement :0rolleyes:
http://phpdebutant.org/

Nexen, qui contient une section bouts de code grandiose, et surtout toute la doc php en ligne, avec des liens vers des exemples bien précis. vraiment génial, à utiliser le plus souvent possible :0clown:
http://www.nexen.net/

Google, ça peut paraitre très con, mais si tu connais une commande mais pas sa syntaxe (paramètres demandés, types des paramètres, etc), tu peux très bien taper le nom de ta commande dans google, et juste en regardant la description des sites trouvés, la plupart du temps tu auras ta réponse :0razzy:
http://www.google.com

EasyPHP, permet d'installer sur ton pc sans risque tout ce qu'il te faut pour tester en local le php et les bases sql, bcp plus pratique que d'uploader chaque fois ta page sur un serveur, puis de l'ouvrir pour voir si ta modif est bonne. à posséder absolument
http://www.easyphp.org/

WebExpert, programme pour créer facilement ses pages web. très simple d'utilisation et ultra puissant (tous les évènements sont recensés, en 1 click tu l'intègres dans ton code, il y a des docs, tu peux intégrer des bouts de codes genre tableau en 2 sec, etc), il permet également la visualisation de sa page en changeant juste d'onglet, donc très rapide et pratique :0razzy: il n'est pas du type what you see is what you get (en gros, tu poses un boutton et il te fait le code tout seul), c'est du code à la main, avec quelques aides quand même, rassure toi :0psycho:
http://software.visicommedia.com/fr/products/webexpert/
Modifié en dernier par Sephiroth Lune le 09 mars 2005 à 20h59, modifié 1 fois.
Avatar du membre
kenjixthenightmare
Silver Smurfer
Messages : 1086
Enregistré le : 17 mai 2003 à 22h27
Contact :

Message par kenjixthenightmare »

Ok, merci Sephi. J'ai pas encore tout lu.

J'ai déjà installé EasyPhp, et j'ai des bases en Html (des bases vraiment!)

En fait je veux essayer de faire une base de données ou un utilisateur cré un compte puis il choisit sa catégorie (course, voiture, temps à la course..) et ensuite je veux pouvoir faire afficher le classement de différentes façons:

-par temps (toutes courses et voitures comprises)
-par points (toutes courses et voitures comprises)
-par temps (pour 1 voiture donnée)
-par points (pour 1 voiture donnée)
et aussi: par temps (en prenant le meilleur temps pour 1 course)

enfin les différents classement pour l'instant je m'en fou un peu mais c'est surtout savoir construire une base rien que pour 1 course déjà ou les temps s'incrémente automatiquement ds la base.

Pour te donne un exemple je veux arrivé en gros a ce résultat mais en plus complexe puique la il ne différencie pas les voitures dans son classement! ==> mariokart.sdv.fr

S'il y a des sites ou il y a des bons exemples de bases de données afin que je puisse bien en comprendre le fonctionnement ca serait cool.
en attendant je vais commencer à lire ce que tu as mis et à aller voir sur les sites conseillés. (Ne t'emballe pas trop vite par contre dans le nombre des explications, je ne travaillerai pas réguliérement dessus car je bosse aussi et donc je m'y met qd j'ai du temps et je te dirai ou je bloque!)



:0thumbsup: Merci déjà en tout cas.
"Da Gathering way of thinking:"
"Dispersés pour mieux reigner et revenir pour dominer "
:lee:   :paul:   :kazuya:   ?
Image
Avatar du membre
Sephiroth Lune
Ze Freaky Stuff
Messages : 14286
Enregistré le : 18 mai 2003 à 22h45
Localisation : Lyon (69)
Contact :

Message par Sephiroth Lune »

je vois ce que tu cherches à faire, et je peux t'aiguiller: il faudrait faire une seule base de donnée, avec toutes les infos (temps, point, voiture, etc), et c'est lors de la lecture que tu vas trier tes informations pour l'affichage souhaité :0thumbsup:

tu peux donc déja regarder quel type de champ tu vas avoir pour les champ dont tu connais la valeur max (les points, par exemple, tu connais leur valeur max et peut donc prendre un type de champ en conséquence).

j'ai pas compris pourquoi tu veux que les temps s'incrémente dans la base?

la ptite partie programmation en php pur, ça va être pour le classement, puisque tu ne peux pas créer un champ exprès pour indiquer quelle est la position du type, vu qu'elle va changer dès qu'un mec viendra ajouter un temps. il va donc falloir lire tous les temps, et utiliser la fonction max(x1, x2) qui permet d'indiquer quel est le plus grand chiffre entre x1 et x2 :0thumbsup:

si t'a d'autres questions, n'hésite pas, même en html :0psycho:
Avatar du membre
kenj
Rackham le Rouge
Rackham le Rouge
Messages : 46207
Enregistré le : 23 oct. 2002 à 22h33
Contact :

Message par kenj »

Chapeau pour le tutorial! :0chinasmile:
Avatar du membre
kenjixthenightmare
Silver Smurfer
Messages : 1086
Enregistré le : 17 mai 2003 à 22h27
Contact :

Message par kenjixthenightmare »

Bon sephi, je te harcèle de question dès que mon Wi-fi remarche et que j'aurais donc Internet directement sur mon PC!

Le mieux serait encore d'aller sur le tchat un de ces soirs! (je récupère ptet ce soir Internet sur mon PC)
"Da Gathering way of thinking:"
"Dispersés pour mieux reigner et revenir pour dominer "
:lee:   :paul:   :kazuya:   ?
Image
Avatar du membre
Sephiroth Lune
Ze Freaky Stuff
Messages : 14286
Enregistré le : 18 mai 2003 à 22h45
Localisation : Lyon (69)
Contact :

Message par Sephiroth Lune »

bah sinon tu peux aller choper aim sur www.aim.com, ce sera bien plus simple que le chat calbuth, j'y pense jamais et en 56K c'est un peu scintillant pour les yeux :0eek:
Avatar du membre
ryosakasaki70
Fear Of The Dark
Messages : 14
Enregistré le : 06 avr. 2005 à 12h15

Message par ryosakasaki70 »

Bonjour a tous g vu que vous parlez de PHP/mysql vous pouvez aller sur :www.developpez.com pour choper de tutoriel et autres a plus les gars.



:0thumbsup:
Répondre

Retourner vers « Bla Bla Bla Général »