Précédent   Forum des professionnels en informatique > PHP > Langage > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, FAQ, sources, etc. pour PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/07/2006, 22h16   #1
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Par défaut [Proposition et relecture] Tutoriel ultra-minimal PHP/MySQL

Bonjour
Je propose un nouveau tuto : un tuto très court et très simple, qui dit comment passer correctement une requête MySQL depuis PHP.

Le but avoué de ce tuto est d'y rediriger tous les débutants qui pensent que faire un echo('SELECT') va faire quelque chose à leur base de données.

Le tutoriel a pour vocation d'être simplissime et rapide à lire.

Mon problème est le suivant : Il est redondant avec la doc PHP, avec les cours complets de PHP/MySQL, avec plusieurs points de la FAQ, avec tous les livres de PHP bien écrits. Son intérêt est dans une présentation synthétique de la chose.

A votre avis, intéressant ou pas intéressant ?
Merci d'avance

[edit] le tutoriel proposé est disponible ici : http://eusebius.developpez.com/phpmysql-base/ [/edit]
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 09h30   #2
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Moi je pense que c'est une bonne idée car je n'ai pas trouvé d'exemple concret de connexion / recherche / insertion dans une BDD. Il y a juste des bouts de code à droite à gauche dans la F.A.Q.. Par contre je trouve qu'il y a trop de tutoriels PHP, et les plus importants ne sont pas mis en valeur, donc à mon avis les nouveaux qui cherchent de l'aide se perdent un peu (c'est un avis perso).
En parlant de tutoriels, l'autre point sensible sur le forum avec les BDD c'est les formulaires. Il y a un tuto à ce sujet. Il est dit que l'on peut récupérer les données en appelant une variable du nom de l'attribut NAME des champs du formulaire, par exemple
Code :
1
2
3
<form method="POST">
<input type="text" name="variable" ...>
</form>
se récupère avec
Je connaissais pas ça, je pensais qu'il fallait forcément faire $_POST['variable'], quelqu'un peut me confirmer que je me trompe Il est juste question de $_POST très rapidement à la fin, mais c'est pourtant ce qui est utilisé dans 99% des cas, donc pour moi le tuto est trompeur pour les débutants.
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 09h38   #3
Membre éprouvé
 
Homme
Inscription : avril 2005
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Turquie

Informations forums :
Inscription : avril 2005
Messages : 611
Points : 459
Points : 459
ben en tout cas sur le site developpez.com doit pas y avoir quelque chose claire là dessus, donc çà serai surement une bonne idée.

Mais bon apres sur le net on trouve çà assez facilement je pense
maximenet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 09h45   #4
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
Envoyé par maximenet
ben en tout cas sur le site developpez.com doit pas y avoir quelque chose claire là dessus, donc çà serai surement une bonne idée.

Mais bon apres sur le net on trouve çà assez facilement je pense
L'intérêt des tutos et FAQ du site c'est d'avoir le maximum de choses sous la main sans avoir à chercher partout, surtout les thèmes plus utiles (BDD et formulaires pour PHP).
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 09h47   #5
Membre éprouvé
 
Homme
Inscription : avril 2005
Messages : 611
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Turquie

Informations forums :
Inscription : avril 2005
Messages : 611
Points : 459
Points : 459
vivi pour çà que je disait que çà serai une bonne idée
maximenet est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 18h28   #6
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par JWhite
Il y a un tuto à ce sujet. Il est dit que l'on peut récupérer les données en appelant une variable du nom de l'attribut NAME des champs du formulaire, par exemple
Code :
1
2
3
<form method="POST">
<input type="text" name="variable" ...>
</form>
se récupère avec
On peut faire ça si register_globals est à on, ce qui est fortement déconseillé pour raisons de sécurité, depuis PHP 4.2.0. Le problème était suffisamment sérieux pour que l'équipe de développement de PHP renonce à la compatibilité "automatique" des scripts rédigés dans l'ancienne config de base.

Bon, pour le tuto, j'avoue j'ai déjà fait quelque chose : http://eusebius.developpez.com/phpmysql-base/
Dites-moi ce que vous en pensez...
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 18h52   #7
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Citation:
On peut faire ça si register_globals est à on
Oui mais normalement c'est pas le cas. Donc pour moi le tuto est inadapté, et je pense que des personnes se font avoir et sont obligées de se rabattre sur le forum.


Sinon je le trouve pas mal le tuto, juste un problème de parenthèse à la première ligne de code (avec register).
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2006, 19h03   #8
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par JWhite
juste un problème de parenthèse à la première ligne de code (avec error_reporting).
Done
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 12h06   #9
Membre émérite
 
Inscription : juillet 2005
Messages : 775
Détails du profil
Informations personnelles :
Âge : 29

Informations forums :
Inscription : juillet 2005
Messages : 775
Points : 858
Points : 858
Envoyer un message via AIM à ouatmad Envoyer un message via MSN à ouatmad Envoyer un message via Yahoo à ouatmad
s'lt! je viens de jetter un coup d'oeil a ton tuto; je trouve que c'est tres bien dans la mesure ou c'est pratique et simple à la fois.
Juste une remarque cependant: pourquoi ne mettrais tu pas un or die (mysql_error()) lorsque tu te connectes au serveur
$link = mysql_connect("localhost", "developpez", "pass") or die (mysql_error());
__________________
Les hommes naissent et demeurent libres et egaux en dignité et en droit. Les distinctions sociales ne peuvent etre fondées que sur l'utilité commune. Article 1 droits et de l'homme et du citoyen. 1789
ouatmad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2006, 12h37   #10
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par ouatmad
s'lt! je viens de jetter un coup d'oeil a ton tuto; je trouve que c'est tres bien dans la mesure ou c'est pratique et simple à la fois.
Juste une remarque cependant: pourquoi ne mettrais tu pas un or die (mysql_error()) lorsque tu te connectes au serveur
$link = mysql_connect("localhost", "developpez", "pass") or die (mysql_error());
Je l'avais mis au début, mais je me suis rendu compte que lors de la connexion, PHP affichait le message d'erreur mysql sous la forme d'un warning PHP.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2006, 16h56   #11
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
salut, comme je te l'ai dit, j'ai lu ton tutoriel et j'ai quelque remarques :

(Quand je mets des choses en Gras-Rouge c'est pour dire ce que j'aurai mis à la place !!)

I. Introduction :
Citation:
1ère ligne : Nous utiliserons pour cela l'extension MySQL de PHP
Faudrait rajouter ça, pour que les petits gens ils ait pas à créer la table avec leur petits doigts !!
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE DATABASE `developpez` ;
CREATE TABLE `tuto_table` (
`id` INT( 10 ) NOT NULL ,
`comment` VARCHAR( 255 ) NOT NULL ,
PRIMARY KEY ( `id` )
);
INSERT INTO `tuto_table` ( `id` , `comment` )
VALUES (
'1', 'valeur1'
), (
'2', 'valeur2'
);

IV-B :
Citation:
l'extension MySQL
et ici, je pense que c'est une coquille !!
Code :
1
2
3
4
5
while ($tab = mysql_fetch_array($result)) {
  echo $tab['id'] . " : " .  $tab['comment'];
  echo ""; // pas plutôt echo "<br />"; ??
}
IV-C :

Pareil ici !!
Code :
1
2
3
4
5
while ($tab = mysql_fetch_object($result)) {
  echo $tab->id . " : " .  $tab->comment;
  echo ""; // pas plutôt echo "<br />"; ??
}
Voili Voilo !! Bonne correction
A ++
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 13h13   #12
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Juste un truc comme ça :
Vous utilisez souvent les backquotes (``) vous ?
Moi jamais, et j'ai jamais eu de problème ... alors je me demandais si ca servait à quelque chose ... ??
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 13h34   #13
Expert Confirmé

 
Avatar de Amara
 
Inscription : juillet 2004
Messages : 2 684
Détails du profil
Informations personnelles :
Localisation : France, Sarthe (Pays de la Loire)

Informations forums :
Inscription : juillet 2004
Messages : 2 684
Points : 2 910
Points : 2 910
Moi non plus jamais utilisé jamais eu de problèmes il paraît que c'est mieux pour le nom de la table (caractères spéciaux ?!?)...
__________________
Pas de questions techniques par MP, le forum est là pour ça et est plus efficace.

Orthographe : une connexion (avec un x), un langage (sans u), une requête (un seul t), 'une quote' (avec qu), une syntaxe (sans h)
Amara est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 13h35   #14
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
J'ai jamais eu de problème non plus, mais j'ai jamais utilisé de noms de champs bizarres !
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 13h41   #15
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Citation:
Envoyé par Eusebius
J'ai jamais eu de problème non plus, mais j'ai jamais utilisé de noms de champs bizarres !
+1 !!
Faut pas non plus jouer avec le feu, après on passe pour des vieux cons, mais juste des caractère alphanumérique et des _ commencant par une lettre !!

C'est valable pour les variables etc, mais au moins, on a jamais de problèmes

P.S : Eusebius, je suppose que tu as pas eu le temps de lire mes remarques ?
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 13h47   #16
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par Maxoo
P.S : Eusebius, je suppose que tu as pas eu le temps de lire mes remarques ?
Oups, j'avais un peu zappé. Promis, je m'en occupe quand je rentre chez moi (suis en déplacement). J'ai pas de remarques sur tes remarques, je prends tout en compte (effectivement ya des br qui ont sauté, je sais pas pourquoi...)
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 13h50   #17
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
Citation:
Envoyé par Eusebius
Oups, j'avais un peu zappé. Promis, je m'en occupe quand je rentre chez moi (suis en déplacement). J'ai pas de remarques sur tes remarques, je prends tout en compte (effectivement ya des br qui ont sauté, je sais pas pourquoi...)
Oki, parfait, j'ai donc bien fait de te le rappeler
++
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 14h03   #18
Membre Expert
 
Avatar de Djakisback
 
Inscription : février 2005
Messages : 1 791
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 1 791
Points : 1 681
Points : 1 681
Salut,
sympa le tuto ^^.

Je pense qu'il faudrait quand même préciser la différence entre fetch_assoc() et fecth_array(). D'ailleurs tu utilises fetch_array() alors que c'est inutile dans le cas de l'exemple. Je ne sais pas comment fonctionne exactement ces 2 fonctions mais mysql_fetch_array() crée des doubles clés donc j'imagine que cela prend un peu plus de ressources.

Code :
1
2
3
4
5
6
7
8
9
10
11
mysql_fetch_rows()
print_r($tab);
// array([0] => 1, [1] => 'texte comment')
 
mysql_fetch_assoc()
print_r($tab);
// array(['id'] => 1, ['comment'] => 'texte comment')
 
mysql_fetch_array()
print_r($tab);
// array(['id'] => 1, ['comment'] => 'texte comment', [0] => 1, [1] => 'texte comment')
Bye

edit: pour être plus précis "une ressource est retournée par mysql_query,"
en fait c'est un identifiant de ressource qui est retourné ^^
Djakisback est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 14h06   #19
Expert Confirmé
 
Avatar de Eusebius
 
Inscription : avril 2003
Messages : 3 286
Détails du profil
Informations forums :
Inscription : avril 2003
Messages : 3 286
Points : 3 155
Points : 3 155
Citation:
Envoyé par Djakisback
Je pense qu'il faudrait quand même préciser la différence entre fetch_assoc() et fecth_array(). D'ailleurs tu utilises fetch_array() alors que c'est inutile dans le cas de l'exemple.
C'est un parti pris, je veux rester simple donc présenter le moins de fonctions possibles, et comme fetch_array fait à la fois les tableaux associatifs et non associatifs, c'est lui que j'ai choisi pour tout ce qui est tableaux. J'ai d'ailleurs précisé dans le tuto comment l'utiliser dans les deux cas.
Eusebius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2006, 14h07   #20
Expert Confirmé
 
Avatar de Maxoo
 
Maxime Pasquier
Expert PHP
Inscription : novembre 2004
Messages : 2 126
Détails du profil
Informations personnelles :
Nom : Maxime Pasquier
Âge : 28
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations professionnelles :
Activité : Expert PHP
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2004
Messages : 2 126
Points : 2 602
Points : 2 602
ou faire
Code :
mysql_fetch_array($que,MYSQL_ASSOC);
__________________
Pour une bien meilleur lisibilité, utilisez la balise [code], c'est le [#] dans votre éditeur.
Mon espace Développez : mes Créations.


Rencontre & Carte des Membres de Developpez.com, version 3.0
Maxoo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h46.


 
 
 
 
Partenaires

Hébergement Web