Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1306 connectés 

  FORUM HardWare.fr
  Programmation

  [PHP] interroger plusieurs tables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] interroger plusieurs tables

n°35341
Profil sup​primé
Posté le 29-05-2001 à 18:56:56  answer
 

je bute là-dessus depuis un moment...
 
j'ai deux tables :
 
CREATE TABLE categories (
id_cat SMALLINT(255) UNIQUE NOT NULL AUTO-INCREMENT,
nom_cat VARCHAR(255) NOT NULL,
PRIMARY KEY(id_cat));
 
CREATE TABLE sscategories (
id_sscat SMALLINT(255) UNIQUE NOT NULL AUTO-INCREMENT,
id_cat SMALLINT(255) NOT NULL,
nom_sscat VARCHAR(255) NOT NULL,
PRIMARY KEY(id_sscat));
 
et je voudrais afficher, dans un tableau, la liste de toutes les catégories et
sous-catégories associées...
 
voilà ce que j'essaye mais sans succès :
 
$db = mysql_connect("host", "login", "password" );
mysql_select_db("ma_base",$db);
 
if ("sscat"==$page)
{
$resultcat = mysql_query("SELECT * FROM categories ORDER BY nom_cat", $db);
$resultsscat = mysql_query("SELECT * FROM sscategories ORDER BY nom_sscat",
$db);
}
 
<table border="1" cellpadding="5">
<tr>
<td bgcolor="#ffffec" colspan="2">
<b><center>LISTE DES SOUS-CATEGORIES DE LA BASE D'EXPLOITATION</b></center>
</td>
</tr>
<tr>
<td bgcolor="#ffffec">
<b>Catégories</b>
</td>
<td bgcolor="#ffffec">
<b>Sous-catégories</b>
</td>
</tr>
<tr>
<td bgcolor="#fffff9">
<?
while( $rowsscat = mysql_fetch_object($resultsscat) )
{
echo $rowcat->nom_cat;
}
?>
</td>
<td bgcolor="#fffff9">
<?
echo $rowsscat->nom_sscat;
}
mysql_close();
?>
</td>
</tr>
</table>
 
y'a peut-être une ou deux erreurs de ; et de } mais c'est un copier/coller
foireux :))
 
l'erreur c'est : "$rowcat n'est pas un objet" au niveau de l'affichage de la
catégorie en face de la sous catégorie (qui fonctionne bien elle...)
 
merci :))

mood
Publicité
Posté le 29-05-2001 à 18:56:56  profilanswer
 

n°35353
m@nou
vu z&#039;avais pas vu
Posté le 29-05-2001 à 19:28:12  profilanswer
 

çà s'appelle faire une jointure :D
t'as besoin d'une seule requête du genre
 
SELECT nom_cat,nom_sscat FROM categories,sscategories where categories.id_cat=sscategories.id_cat
 
tu peux mettre des alias sur les tables pour raccourcir un peu ta clause "WHERE" et tu peux aussi ajouter ton critère de tri avec la clause "ORDER BY"
 
 
SETI çà kil te faut ?? :D


---------------
Mes photos,Feed-Back HA/V
n°35403
Profil sup​primé
Posté le 29-05-2001 à 21:39:28  answer
 

oui c'est bien une jointure que je veux faire... mais pourquoi que je l'ai pas dis tout de suite ????
 
merci pour la requête tout faite :))
 
je ne savais pas que l'on pouvais faire des jointures en Mysql :))

n°35418
Mich
Posté le 29-05-2001 à 23:15:26  profilanswer
 

une solution aussi : dans ta table "Categories" tu ajoutes un champ "Parent" dans lequel tu mets 0 si c'est une categorie, ou le code de la categorie parente si c'est une sous-categorie.
Premiere requete : tu recuperes les categories :
select code from table where parent=0
pour chaque code
   select * from table where parent=code
   pour chaque sous categorie trouvee
     traitement
   finpour
finpour

n°35432
FLY LM
Posté le 30-05-2001 à 00:35:18  profilanswer
 

Tiens un petit code pour répondre à ton pb :
 
<?php
 
 $connect = mysql_connect("$host","$user","$password" );  
 
 $query = "SELECT c.nom_cat,s.nom_sscat FROM categories AS c, sscategories AS s WHERE c.id_cat=s.id_cat ORDER BY c.nom_cat";
 $result = mysql_db_query("$db",$query) or die ("Requête invalide" );
     
     
     
     $cat="";
 while($row = mysql_fetch_object($result))  
 {  
  if($cat!=$row->nom_cat)
  {
   echo "<br><b>".$row->nom_cat."</b><br>";  
   }
     
  $cat = $row->nom_cat;
  echo "     ".$row->nom_sscat."<br>";  
 }
 
?>

n°35442
Profil sup​primé
Posté le 30-05-2001 à 08:03:06  answer
 

Vous êtes trop sympas les mecs (y'a peut-être des filles...) !!!
 
Vous me mâchez le travail en plus !!  
 
A charge de revanche :)))
 
En plus c'est pour un site matos informatique :)) il pourra peut-être vous servir :))))

n°35443
m@nou
vu z&#039;avais pas vu
Posté le 30-05-2001 à 08:06:30  profilanswer
 

pô de koi :D
le forum est fait pour çà.
 
vaut mieux poser çà question que rester bloquer des heures voire des journées entières devant son pb ;)

 

[edit]--Message édité par m@nou--[/edit]


---------------
Mes photos,Feed-Back HA/V
n°35444
Profil sup​primé
Posté le 30-05-2001 à 08:11:32  answer
 

je crois qu'on peut dire des jours :)))) en fait, j'ai commencé de bloquer grave au bout de quelques heures.... mais quand c'est bloqué, c'est bloqué... y'a plus rien à faire que lancer un sos.... je pensais y arriver seul... mais là, je regrette de pas avoir demandé plus tôt :))

n°35488
omega2
Posté le 30-05-2001 à 10:31:39  profilanswer
 

Bon, les autres t'on donner la solution idéale.
Pour ton message d'erreur, c'est apr ce que t'as deux variables :
$rowsscat qui est un objet et que t'affecte bien
$rowcat   qui n'est définis nulle part et qui n'est donc pas un objet
(erreur bète qui arrive à tout le monde)

n°35490
Profil sup​primé
Posté le 30-05-2001 à 10:36:10  answer
 

j'ai pourtant essayé de faire :
 
while( $rowsscat = mysql_fetch_object($resultsscat) )
{
  while( $rowcat = mysql_fetch_object($resultcat) )
  {
    echo $rowcat->nom_cat;
  }  
}
 
mais c'est idem....
 
je vais essayer cet am les solutions qui m'ont été données ici...
merci :)

mood
Publicité
Posté le 30-05-2001 à 10:36:10  profilanswer
 

n°35631
Profil sup​primé
Posté le 30-05-2001 à 14:47:15  answer
 

m@nou a écrit a écrit :

SELECT nom_cat,nom_sscat FROM categories,sscategories where categories.id_cat=sscategories.id_cat




 
si je fais :
 
$result = mysql_query("SELECT nom_cat,nom_sscat FROM categories, sscategories where categories.id_cat=sscategories.id_cat ", $db);
 
while( $rowcat = mysql_fetch_object($result) )
  {
    echo $rowcat->nom_cat;
   }
 
et tout le toutim.... ça marche c'est formidable !! j'ai même rajouté de quoi faire des tris différents :)))))


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [PHP] interroger plusieurs tables

 

Sujets relatifs
[JavaScript: Pb de variable globale entre plusieurs frames[PHP] Executer un script à une heure donnée
[RECRUTEMENT] - Programmeur PHP[PHP] Demande d'aide - Question pour les pros du PHP ;-)
J'hesite entre 2 bouquins sur PHP...[PHP] - Récupération de la version du navigateur...
[PHP] pb de newbie[PHP] Probleme d'affichage !
(PHP) j'arrive pas a afficher des variables crees dans une boucle !Comparer 2 dates en PHP ?
Plus de sujets relatifs à : [PHP] interroger plusieurs tables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR