[php/mysql] quelqu'un peut corriger ce que j'ai fait ?

quelqu'un peut corriger ce que j'ai fait ? [php/mysql] - Programmation

Marsh Posté le 26-02-2001 à 22:05:39    

Voilà, j'ai fait un base de donnée avec une table CATEGORIES et une table SITES.  
Dans la table SITES, il y a un champ CATEGORIE, et je voudrais afficher :  
 
CATEGORIE A
 
-site1 (correspondant à la categorie A)
-site2
 
CATEGORIES B
 
-site3 (correspondant à la categorie B)
-site4
 
Mais ca marche po...
Il m'affiche :
 
Categorie A:
-tous les liens
 
Categorie B:
-tous les liens
 
grrrrrrrrrrrrrrrrrrrrr (non, ca il ne l'affiche pas).
Help pleazzzz
 
--------------------------------------------------
 
Voilà le chty script. Merci de jeter un coup d'oeil (et si possible de trouver la bete faute que le neuneu il a faite)
Merci
 
<?
 
$db = mysql_connect("localhost", "login","pass" );
mysql_select_db("betesite",$db);
 
$result = mysql_query("SELECT * FROM categories",$db);
 
while ($myrow = mysql_fetch_array($result))
{
  printf("<BR><font size=5>%s</font><br><BR> \n",$myrow["categorie"]);
 
  $links = mysql_query("SELECT * FROM sites, categories WHERE sites.categorie = categories.categorie ORDER BY sites.site ASC",$db);
 
  while ($myrowsites = mysql_fetch_array($links))
  {
     printf("<LI><A HREF=\"%s\">%s</A><BR>\n", $myrowsites["url"], $myrowsites["site"]);
  }
}

Reply

Marsh Posté le 26-02-2001 à 22:05:39   

Reply

Marsh Posté le 26-02-2001 à 22:22:06    

Salut,
 
En fait, tu as deux boucles imbriquées. La première boucle sur les catégorie, et la deuxième affiche tous les sites lié à une catégorie QUELLE QUELLE SOIT !
 
Soit tu ajoute dans le WHERE de ta deuxième requete
"AND categories.categorie=" . $myrow["categorie"]
 
Soit tu vire ta première boucle et tu affiche la catégorie dans la seconde quand tu détecte quelle a changée.
 
A+
 
PS: La 2ème solution est la plus mieux ;) (Moins de requêtes)


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 26-02-2001 à 22:22:31    

essaye de changer le nom de t champs categorie et site, pour mieux comprendre :)


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 26-02-2001 à 22:24:16    

ok merci.
 
je vais essayer.

Reply

Marsh Posté le 26-02-2001 à 22:28:07    

Allez, j'ai bon coeur ce soir !
 
<?  
 
$db = mysql_connect("localhost", "login","pass" );  
mysql_select_db("betesite",$db);  
 
$links = mysql_query("SELECT * FROM sites, categories WHERE sites.categorie = categories.categorie ORDER BY categories.categorie, sites.site ASC",$db);  
 
$cat="";
 
while ($myrowsites = mysql_fetch_array($links))  
{  
 if ( $cat != $myrowsites["categorie"] )
 {
  printf("<BR><font size=5>%s</font><br><BR> \n",$myrowsites["categorie"]);  
  $cat = $myrowsites["categorie"];
 }
  printf("<LI><A HREF=\"%s\">%s</A><BR>\n", $myrowsites["url"], $myrowsites["site"]);  
}  
 
?>


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 26-02-2001 à 22:29:17    

c'est vrai que c'est stupide de faire une table categorie si j'ai quand meme un champ categorie dans site.
 
Que je suis neuneu.
 
oui oui
 
(désolé, mais il fallait que je dise à tout le monde que je suis neuneu)

Reply

Marsh Posté le 26-02-2001 à 22:31:32    

merci mara's dad. Je n'en demandais pas tant.
 
Merci merci merci

Reply

Marsh Posté le 26-02-2001 à 22:33:10    

C'est stupide si tu n'as que le champs categorie dans la table categories. Mais si tu as d'autres infos alors là c'est tout à fait normal, voire obligatoire !


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 26-02-2001 à 22:41:00    

ben c'était stupide... enfin... très stupide meme

Reply

Sujets relatifs:

Leave a Replay

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