php/ base de données

php/ base de données - PHP - Programmation

Marsh Posté le 10-11-2006 à 17:02:14    

Voilà, je cherche à réaliser quelque chose d'assez diffcile par rapport à ce que je fais habituellement :  
 
- récupérer les données d'une base sur plusieurs tables diférentes et les afficher.
 
base = ma_base
table1 : liste des champs : id, nom, prenom
table2 : id, table1_id, notes, liste
table3 : id, table2_id, statut, demo
 
j'ai un formulaire du genre :

Code :
  1. <form action="test.php" method="post">
  2. Indiquez le nom: <INPUT TYPE = "text" name="choix" id = "choix">
  3. <input name="valider" type = "submit" id="valider" value = "Rechercher">                        
  4. </form>


 
et donc mon fichier test :

Code :
  1. //connexion à ma base
  2. blablabla
  3. // $choix = $_POST['choix'];
  4. //...blablabla


 
donc ma connexion à ma base est ok, mon formulaire marche. c'est au niveau de la requete que je ne trouve pas
je voudrais que selon le choix "nom", récupérer toutes les valeurs associé à nom dans mes 3 tables
 
j'ai fait un truc comme ça :  

Code :
  1. $requete = SELECT table1, table2,table3
  2. FROM table1 JOIN table2, table3 USING(table1.id  = table2.table1_id,table2_id)
  3. WHERE nom=$choix ;


 
bon ça marche pas , je ne récupère aucune valeur :-((
je ne trouve pas la soluce ...
 
pour info, ma base est en postgreSql.

Reply

Marsh Posté le 10-11-2006 à 17:02:14   

Reply

Marsh Posté le 10-11-2006 à 17:29:21    

tu fais n'importe-quoi...[:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-11-2006 à 17:30:02    

http://fr2.php.net/manual/fr/ref.pgsql.php


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-11-2006 à 12:53:01    

voilà, donc j'ai fait comme ça  
 

Code :
  1. $requete = "SELECT * FROM table1 V INNER JOIN table2 S ON V.id = S.toto_id INNER JOIN table3 C ON C.totos_id = V.id INNER JOIN table 3 P ON P.loulou_id = V.id WHERE nom = '$choix'";


 
alors là ça marche... mais... seulement si le choix contient au moins une données dans chacune des tables sinon il m'affiche rien.  
autre solution faire plusieurs requetes et tester chaque fois si une ligne est retourné mais bon, l'idée était de faire une seule requete... je ne vois pas trop comment faire ça...

Reply

Marsh Posté le 13-11-2006 à 12:56:31    

jointure externe.[:dawa]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-11-2006 à 18:28:03    

yesssssssssss!!! :-))) merci

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed