Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & MySQL
PHP & MySQL Forum d'entraide sur les fonctions MySQL avec PHP. Avant de poster -> FAQ MySQL, Cours MySQL et Sources MySQL. Pour les questions concernant le moteur MySQL plutôt que les fonctions PHP, merci d'utiliser le forum MySQL.
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/10/2011, 11h41   #1
Invité de passage
 
Inscription : août 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 28
Points : 2
Points : 2
Par défaut procedure d'ecriture/lecture d'enregistrement

Bonjour,

Programmeur actionscript, je code depuis peu des applications connectées à une base de donnée SQL. J'aurais besoin d'un petits conseil sur certaines procedures d'ecriture/lecture d'enregistrement.

J'ai par exemple une première table A dont un champs ID_B fait référence a un enregstrement d'une deuxieme table B.

Jusqu'à présent, si je veux récuperer un enregistrement de A, je crée un Objet Php en remplaçant le ID_B par la champs de B qui m'interesse.

Code :
1
2
B.title as myValue
WHERE B.ID = A.ID_B
Inversement, à l'enregistrement, je place 2 requetes SQL en cascade dans ma fonction Php. La première récupère le ID_B correspondant à la valeur envoyée:

Code :
$query = "SELECT ID FROM B WHERE title=$obect->myValue";
La deuxième crée mon enregistrement dans A avec cet ID_B:

Code :
$query = sprintf("INSERT INTO A....",....mysql_real_escape_string($ID_B));
Cela me semble logique, mais la lourdeur de l'affaire et que si dans mon application je veux par exemple créer une popup pour un saisir un nouvel enregistrement de A, je dois à l'ouverture de cette popup télécharger au préalable toutes les valeurs de la table B pour remplir un ComboBox (je ne souhaite pas coder en dur les valeurs de B bien sûr).

Cette méthode est-elle la bonne? Merci par avance pour votre expertise!!!
badoumba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 11h53   #2
Nouveau Membre du Club
 
Aurélien LEQUOY
Inscription : février 2011
Messages : 33
Détails du profil
Informations personnelles :
Nom : Aurélien LEQUOY

Informations forums :
Inscription : février 2011
Messages : 33
Points : 35
Points : 35
INSERT INTO A
SELECT B.* FROM A
INNER JOIN B ON B.ID = A.ID_B
WHERE ......


a supposer que A et B soit la même table ou la même structure sinon précise le nom des champs
Aurélien LEQUOY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 13h40   #3
Invité de passage
 
Inscription : août 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 28
Points : 2
Points : 2
Merci Aurélien

Cette requête (une jointure je crois) remplace donc ma double requête pas très élégante!

Pour ce qui est de ma deuxième partie, la popup de création, il faut donc dans tous les cas que je récupére la liste de tous les enregistrements de ma table "jointe" B. Le processus peut être long si j'ai besoin de charger 3 ou 4 autres tables en cascade pour alimenter différents combobox! Il faut entre chaque chargement de table faire un aller retour entre la bdd et mon logiciel pour récupérer les données et commander l'upload suivant
badoumba est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 14h19   #4
Nouveau Membre du Club
 
Aurélien LEQUOY
Inscription : février 2011
Messages : 33
Détails du profil
Informations personnelles :
Nom : Aurélien LEQUOY

Informations forums :
Inscription : février 2011
Messages : 33
Points : 35
Points : 35
tu peux faire une jointure sur X tables et charger tes 4 tables en une fois.


SELECT B.* FROM A
INNER JOIN B ON B.ID = A.ID_B
INNER JOIN C ON C.ID = B.ID_C
INNER JOIN D ON D.ID = C.ID_D
....
Aurélien LEQUOY est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/10/2011, 14h42   #5
Invité de passage
 
Inscription : août 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 28
Points : 2
Points : 2
ok, je vois.

A moi de diviser ses données pour les dispatcher dans les bons Combos dans mon logiciel.

merci encore
badoumba 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 02h48.


 
 
 
 
Partenaires

Hébergement Web