Exemple PHP/MySQL

Fermé
Arnault Messages postés 3 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 29 mars 2002 - 28 mars 2002 à 09:46
 genova - 23 juin 2010 à 14:36
Bonjour.
Je suis à la recherche désespérée d'un toturial PHP/MySQL assez abouti, qui puisse me permettre de comprendre la notion de gestion de relations entre deux tables avec PHP.

Merci d'avance pour vos liens et tuyaux divers
A voir également:

12 réponses

PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
29 mars 2002 à 13:09
Salut Arnault,

Qu'entens-tu par "exploiter les relations entre les tables, comme avec Access" ?

Connaîs-tu le langage SQL même si c'est celui d'Access ?
Sous Access est-ce que tu tapes directement le code SQL de tes requêtes ou bien utilises-tu uniquement l'assistant ? (le truc qui se manipule à la souris que te fait voir les tables, les liens, les champs sélectionnés dans un tableau etc ... mais qui malheureusement te fait passer à côté de l'essentiel si tu n'utilises que çà , càd le SQL lui même !)

Jette donc un coup d'oeil au code SQL que te génère Access dans tes requêtes, tu verras de quoi je parle...

G tjrs pas de tutorial, mais en ce qui concerne la sélection de données le lien entres 2 tables MySql passe par l'utilisation d'une jointure (mot clé INNER JOIN) :

Par ex si tu as les tables :

Table CLIENT :

CLI_ID : identifiant du client (clé primaire)
CLI_NOM : nom du client


et


Table COMMANDE :

CDE_ID : identifiant de la cde (clé primaire)
CDE_CLI_ID : identifiant du client (clé étrangère)
CDE_DATE : date de la cde
CDE_MONTANT : montant de la cde


Et bien pour obtenir toutes les cdes de tous les clients la requête SQL est :

SELECT * FROM CLIENT INNER JOIN COMMANDE
ON CLIENT.CLI_ID = COMMANDE.CDE_CLI_ID

Bien sûr faudrait développer davantage, mais comme j'ignore ton niveau ...

@+
Philippe



[[  The Truth is Out There   ]]
3
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
29 mars 2002 à 21:52
Bonsoir,
Je vous vois en train de parler de jointure et de select. Je suis completement débutant et ne trouve pas de doc pour mon pb.
Je me suis fait un petit moteur de recherche (qui marche très bien) sauf que dans la liste déroulante qui découle de la requete je ne sais pas comment m'y prendre pour que le visiteur puisse, en sélectionnant un élément dans cette liste déroulante, provoque l'affichage, sur la droite de la liste, le texte qui correspond a la séléction.
Voivi le script:
<?
if($lettre AND $sexe){
$req = mysql_query("select * from `recherche` where `sexe`=\"$sexe\" and `prenom` LIKE \"$lettre%\" order by `prenom` ASC");
$res = mysql_num_rows($req);
if($res!=0){
print("
<div align='center'>
<form name='prenoms'>
<select name='prenoms' onChange=\"MM_jumpMenu('parent',this,1)\">
<option value='page2.php' selected>Prénoms</option>
");
}
for ($i=0;$i<$res;$i++)
{
$origine = mysql_result($req,$i,"origine");
$resFormat=mysql_fetch_object($req);
echo "<option value=\"page2.php?name=$resFormat->prenom&description=$resFormat->origine\">$resFormat->prenom</option>";
//$i++;
}
if($res!=0){
print("
</select>
</form>
</div>
");
}
if($res==0){
print("Aucun prénom $sexe enregistré pour cette lettre");
}
}
else if($Submit){
print("Veuillez renseigner le formulaire (sexe ET initiale)");
}
if($name AND $description){
print("<b>$name</b> : $description");
}
mysql_close($db);
?>

merci infiniement pour le tuyau. ! ;-))
http://abarka.free.fr
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606 > txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024
29 mars 2002 à 22:14
Salut txiki

Tu veux afficher quoi à droite ?
Un texte ? D'où sort-il ? Fait-il partie d'un des champs que te renvoie ta requête (dans ce cas va peut être falloir songer à le sauvegarder dans la page ...) ?

Ensuite dans quoi veux-tu l'afficher ?
Un champ d'un formulaire, un tableau HTML, une autre page HTML ?

Enfin que fait la fonction :
"MM_jumpMenu('parent',this,1)" ?

Est-ce du code généré par Dreamweaver ? J'espère que non ...


En attendant ...


@+
Php

[[  The Truth is Out There   ]]
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517 > PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009
31 mars 2002 à 22:59
Salut et merci de t'interresser a mon cas,
A droite je veux afficher le contenu d'un champ d'une table (chaque prénom a une explication texte).
Je voudrai l'afficher dans un cadre pas trop grand? (faudrait peut-etre que je crée cellui-ci à droite du bouton (liste déroulante) prénoms. PB je ne sais pas exactement a quel endroit puisque je n'ai que le premier cadre avec les boutons radio, le bouton contenant la liste déroulante s'affichant après (mais peut-etre dans une nouvelle page ?)
Si tu as vu la page en question, sache que c'est un calque avec les contours verts et qui contient les boutons radio, rechercher et je voudrai que le résultat de la requete validée par "rechercher" s'affiche dans ce même calque. (en sorte un rafraississement où quelque chose comme ça).
Je dois te dire aussi que le script m'a été fait par un gars, du
moins le début. Il m'incitait, à l'époque, a utiliser du javascript (je ne sais vraiment pas pourquoi, le php conviendrait aussi bien non ?).
Pourquoi tu me dit j'espère que non au sujet de dreamweaver ????? Y-A-T-il un probleme avec ???? La ligne en question ("MM_jumpMenu('parent',this,1)" ?) c'est bien du javascript, c'est le gars qui l'avait écrit mais effectivement je travaille avec Dreamweaver 4.

J'ais tout viré pour ouvrir une fenetre via un lien et en utilisant un
script pour centrer la fenetre au milieu de l'écran en fonction de
l'affichage du visiteur mais cela ne fonctionne toujours pas.
http://txiki.free.fr/origine_noms.htm pour regarder le source.
Un extrait de la table mythonames.

# Structure de la table `recherche`
#

CREATE TABLE recherche (
id int(4) NOT NULL auto_increment,
sexe varchar(10) NOT NULL default '',
prenom varchar(50) NOT NULL default '',
origine varchar(255) NOT NULL default '',
UNIQUE KEY id (id)
) TYPE=MyISAM;

#
# Contenu de la table `recherche`
#
INSERT INTO recherche VALUES ('', 'masculin', 'ADUR:', 'nom d\'un personnage de la mythologie basque.');
INSERT INTO recherche VALUES ('', 'masculin', 'AGEIO:', 'nom d\'un être de la mythologie basque.');
INSERT INTO recherche VALUES ('', 'masculin', 'AIDE:', 'nom d\'un personnage de la mythologie basque.');

Merci encore infiniement pour tes éclairssissements.

merci pour le tuyau. ! ;-))
http://abarka.free.fr
0
PhP Messages postés 1767 Date d'inscription lundi 11 décembre 2000 Statut Membre Dernière intervention 23 décembre 2009 606
28 mars 2002 à 22:59
Bonsoir Arnault,

Tu serais pas un spécialiste de Delphi 6 par hasard ?
Parce que franchement ca m'arrangerait ...

Enfin si c'est pas le cas c'est pas grave ... ;:-)

Pour ton pb :

D'abord PHP n'a rien mais absolument rien à voir avec MySql.
Il sert juste d'intermédiaire entre les pages HTML du serveur WEB et la base de données qui n'est pas forcemment MySql d'ailleurs.
Il se borne à envoyer des demandes à la base de données sous la forme de requêtes SQL et à attendre les réponses.
Pour PHP une requête SQL n'est rien d'autre qu'une simple chaîne de caractères ! Je veux dire par là que PHP ne connait et ne comprend pas le SQL ...

Tu parles ensuite de relation : sache que MySql ne gère pas les relations ni les sous requêtes (les SELECT imbriqués, du moins pas encore ...).

Pas de suppression en cascade possible avec MySql par ex., ni de relation maître -> détail.

Bref MySql est un SGBD mais pas un SGBDR.

Donc c'est à toi de gérer les relations à la main à l'aide des requêtes et notemment des jointures.

Je n'ai pas de tutorial en tête mais regarde déjà sur CCM !

Ensuite la lecture de la doc de MySql me semble un bon début.
Elle décrit bien les limites du produit et donne quelques exemples.

Et bien sûr le mieux est encore de tester par toi-même : donc tu installes Apache + Php + MySql sur ton PC et c'est parti.

Personnellement j'utilise le logiciel EasyPhp sous XP : ca marche très bien et ca installe tous les softs que je viens de te citer automatiquement avec en prime PhpMyAdmin qui va te permettre de créer ta base de données avec ses tables puis de tester toutes les requêtes SQL que tu veux sans avoir à faire de PHP ni de page HTML.

Si je trouve un tutorial intéressant je te fais signe.

@+
Philippe



[[  The Truth is Out There   ]]
1
Arnault Messages postés 3 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 29 mars 2002
29 mars 2002 à 10:16
Oui, en fait je programme en PHP depuis décembre, et on m'a aiguillé sur des fichiers textes au début.
Il se trouve que maintenant ce serait plus facile à gérer en base de données.
Comme j'utilise Easy PHP aussi, je voulais attaquer en MySQL, mais je ne sais pas exploiter les relations entre les tables, comme avec Access. C'est donc un tutorial SQL qui m'intérèsserait...

Désolé je ne me suis jamais mis à Delphi, je ne développe qu'avec des interfaces Web pour l'instant.
0
Salut!

J'aimerai bien créer une page web, mais je ne sais pas trop quoi faire, j'utilise delphi.

Merci
1
slt, j'aimerais bien qu'on m'aide.j'ai creer un site mais il me faut une base de données ,comment fait on pour joindre php et mysql dans ce site?
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Arnault Messages postés 3 Date d'inscription jeudi 28 mars 2002 Statut Membre Dernière intervention 29 mars 2002
28 mars 2002 à 16:19
ça roule, tranquille
0
txiki Messages postés 6596 Date d'inscription mercredi 30 janvier 2002 Statut Contributeur Dernière intervention 22 février 2024 517
31 mars 2002 à 23:06
Salut à tous,
Le bouton de la liste déroulante, je vais la mettre à gauche et je vais faire un cadre à sa droite pour le commentaire. Pb. je ne maitrise pas assez le javascript pour inserer ce cadre (ou une zone, ou n'importe quoi pourvu que le texte s'affiche à l'intérieur, où mieux, à droite de ce bouton.

merci pour le tuyau. ! ;-))
http://abarka.free.fr
0
Bonjour,
j'ai des probleme dans mes programmes
l'erreur est comme ça;
Notice: Undefined index: nomedit in c:\program files\easyphp\www\essai\esse.php on line 4

Notice: Undefined index: nomrecept in c:\program files\easyphp\www\essai\esse.php on line 4

Notice: Undefined variable: adredit in c:\program files\easyphp\www\essai\esse.php on line 4

Notice: Undefined index: teledit in c:\program files\easyphp\www\essai\esse.php on line 4

Notice: Undefined index: courieledit in c:\program files\easyphp\www\essai\esse.php on line 4

Notice: Undefined index: faxedit in c:\program files\easyphp\www\essai\esse.php on line 4

Notice: Undefined index: refbc in c:\program files\easyphp\www\essai\esse.php on line 5

Notice: Undefined index: datebc in c:\program files\easyphp\www\essai\esse.php on line 5

Notice: Undefined index: designbc in c:\program files\easyphp\www\essai\esse.php on line 5

Notice: Undefined index: montantbc in c:\program files\easyphp\www\essai\esse.php on line 5

Notice: Undefined index: nomedit in c:\program files\easyphp\www\essai\esse.php on line 5

Notice: Undefined index: refcont in c:\program files\easyphp\www\essai\esse.php on line 6

Notice: Undefined index: nomedit in c:\program files\easyphp\www\essai\esse.php on line 6

Notice: Undefined index: pu in c:\program files\easyphp\www\essai\esse.php on line 6

Notice: Undefined index: refcont in c:\program files\easyphp\www\essai\esse.php on line 7

Notice: Undefined index: titrecont in c:\program files\easyphp\www\essai\esse.php on line 7

Notice: Undefined index: nbrcd in c:\program files\easyphp\www\essai\esse.php on line 7

Notice: Undefined index: refcont in c:\program files\easyphp\www\essai\esse.php on line 8

Notice: Undefined index: refbc in c:\program files\easyphp\www\essai\esse.php on line 8

Notice: Undefined index: qtecmd in c:\program files\easyphp\www\essai\esse.php on line 8

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp\www\essai\esse.php on line 39


Mai tous ces variables sont déclarées dans les tables
Merci à vous
0
smifsa01 Messages postés 35 Date d'inscription vendredi 17 août 2007 Statut Membre Dernière intervention 4 novembre 2007 4
11 oct. 2007 à 15:50
bonjour.
je pense que vous n'avez pas declarer les veriable nomedit,nomrecept,...etc.
SI ses vaiables sont reçu aà partir d'un formulaire vous devez avoir de trucs comme:
$nomedit = $_POST['nomedit'];
on peut suivre sur email si tu veux evoyer moi votre MSN
@+++
0
1)que signifie mysql_connect:
2)et qui relie php a mysql
0
https://openclassrooms.com/fr/courses

Le site du zéro, à mttre dans vos favoris absolument. Là il y a tout sur PHP et MySQL pour le débutant à ses premiers jours comme l'expert à la longue expérince :)

Voilà !

Bonne journée à tous.
0
bluetiger Messages postés 1 Date d'inscription jeudi 29 mai 2008 Statut Membre Dernière intervention 29 mai 2008
29 mai 2008 à 19:17
Bonjour
lorsque j' utilise GET ou POST pour passer la valeur de <select> d'une page à une autre je trouve toujours cette erreur :

Could not connect: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ville.nomville=paris' at line 1
0
<?php session_start(); ?>
vous douvez mettre toujours cette method au debut de la page pour transmettre les données d'une page a l'autre,
dans le premier ligne et rien d'autre au debut!!!!!!!!!!
0
aminega1 Messages postés 17 Date d'inscription lundi 5 mai 2008 Statut Membre Dernière intervention 13 octobre 2008 2
17 juin 2008 à 17:09
Salut,
Essaie ce site là dedans tu trouveras tout conçernant PHP & MySQL. Je te conseille de télécharger la documentation en français puis tu sera guidé dans les autres documentations et livres en anglais.
http://hannibalwebmaster.ifrance.com
puis clique sur la rubrique documentation et aprés sur logiciel.
J'espére que tu trouveras tout ce que t'en as besoin.
0