Aide php/mysql requête svp

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par robin23s, 9 Août 2009.

  1. robin23s
    robin23s Nouveau WRInaute
    Inscrit:
    9 Août 2009
    Messages:
    3
    J'aime reçus:
    0
    Bonjour à tous, merci de me lire
    Je débute en php/mysql, et j'aurais une question à vous posez concernant une requête mysql.

    J'ai une base de données avec :
    une Table Categories
    qui comporte les champs :
    id
    id_cat_mere
    cat_name
    une autre Table nommé : Site
    qui comporte les champs :
    id
    id_cat
    titre
    ...

    Mon problème :
    Je n'arrive pas à afficher les sites contenu dans la catégorie principal car le champ id_cat de la table site et = au champ id de la table categories donc je suis obliger de me positionné dans la sous catégorie pour voir les site enregistrer.
    Je voudrais savoir comment afficher les sites enregistrer dans les sous catégorie pour tous les afficher dans la catégorie principal... ( j'espère que quelqu'un me comprend )lol

    Je compte ajouter un champ id_cat_mere à la table site pour n'avoir qu'une simple requête à faire du style :
    SELECT * FROM site WHERE id_cat_mere=2

    Mais je sais pas comment faire, quand j'enregistre un site le champ id_cat correspond à id de la table categories. Je voudrais donc que le nouveau champ id_cat_mere soit lier au champ id_cat_mere de la table categories...
     
  2. Robinson
    Robinson WRInaute passionné
    Inscrit:
    26 Octobre 2005
    Messages:
    1 636
    J'aime reçus:
    0
    Code:
    SELECT * FROM site LEFT JOIN categories ON categories.id = id_cat WHERE id_cat_mere=2
     
  3. jcaron
    jcaron WRInaute accro
    Inscrit:
    13 Février 2004
    Messages:
    2 579
    J'aime reçus:
    0
    Je ne suis pas sûr d'avoir tout compris à la question, mais pourquoi un *left* join? Un join tout court me semble plus logique ici, non? Le left join va afficher tous les sites, mêmes s'il n'y a pas de catégorie qui va avec (ce qui n'est pas forcément possible, mais n'est probablement pas souhaité).

    Jacques.
     
  4. robin23s
    robin23s Nouveau WRInaute
    Inscrit:
    9 Août 2009
    Messages:
    3
    J'aime reçus:
    0
    Merci pour ta réponse :wink:

    En faite comme je les expliquer j'ai une table avec des champs :
    id cat id_cat_mere nom
    1 0 categorie-1 (zero site)
    2 0 categorie-2 (zero site)
    3 1 souscategorie1 (100 sites présent)
    4 1 souscategorie1.2 (200 sites présent)
    5 2 souscategorie2
    Et une autre table site qui contient les sites et l'id de la catégorie, mon problème est que si je me trouve dans la catégorie 1 il y à zero site à la racine il faut que je navigue sur les sous catégories ou ils se trouvent...
    Je voudrais affiche quand je suis sur la catégorie 1 par exemple tout les sites se trouvant dans toute les sous catégories...

    J'ai penser à rajouter un champ id_cat_mere dans la table des sites en plus de celle de la table catégorie, tu en pense quoi ?

    J'ai tester et cela marche mais j'arrive pas à afficher les sites sur plusieurs pages maintenant lol :oops: mon code est :

    Code:
    	//creation des requetes pour trouver les sous-categories, les sites et la description de la categorie
    	$sql_descr = "SELECT texte,cat_name FROM $T_categories WHERE id = '$cat_id' ";
    	$sql_nb_sites = "SELECT id FROM $T_sites WHERE id_cat = '$cat_id' AND activation = 1 ";
    	$sql_site = "SELECT *,TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites WHERE id_cat = '$cat_id' AND activation = 1 ORDER BY niveau ASC,id DESC LIMIT $debut,$nb_sites_on_page";
    	$sql_site_cat = "SELECT *,TO_DAYS(CURRENT_DATE) - TO_DAYS(date_validation) AS dif_days FROM $T_sites WHERE id_cat_mere = '$cat_id' AND activation = 1 ORDER BY niveau ASC,id DESC LIMIT $debut,$nb_sites_on_page";
    	$sql_scat = "SELECT id, cat_name, texte FROM $T_categories WHERE id_cat_mere = '$cat_id' AND activation = 1 ORDER BY cat_name ASC";
    	
    	//envoi des requetes 
    	$res_descr = send_sql($sql_descr,"trouver la description de cette catégorie");
    	$res_nb_sites = send_sql($sql_nb_sites,"trouver le nombre de sites à afficher");
    	$res_site = send_sql($sql_site,"trouver les sites à afficher");
    	$res_site_cat = send_sql($sql_site_cat,"trouver les sites à afficher cat principal");
    	$res_scat = send_sql($sql_scat,"trouver les sous-catégories");
    	
    	//calcul du nombre de pages
    	$nb_sites = mysql_num_rows($res_nb_sites);
    	$nb_pages = ceil($nb_sites / $nb_sites_on_page);
    
    	//affichage de l'arbo_inline
    	echo '<center>' .show_arbo_en_ligne($cat_id). '</center>';
    	echo '<br />';
    	echo '<hr width="60%" />';
    	
    	//on affiches les sous-categories	
    	if (mysql_num_rows($res_scat))
    	//si il y a des sous-categories
    	{
    		
    		echo '<table width="75%" border="0" align="center">';
    		
    		$i=0;
    		while ($resultat = mysql_fetch_array($res_scat,MYSQL_ASSOC))
    		{
    			$url_de_la_scat = id_to_url($resultat["id"],$resultat["cat_name"],'1');
    			$nom_de_la_scat = htmlspecialchars($resultat["cat_name"]);
    			$nb_de_sites_scat = get_nbsites($resultat["id"]);
    			if(empty($resultat['texte']))
    				$description_de_la_scat = $nom_annuaire. ' - ' .$nom_de_la_scat;
    			else
    				$description_de_la_scat = $nom_annuaire. ' - ' .$nom_de_la_scat. ' - ' .$resultat['texte'];
    			
    			if ($i%2 == 0) //colonne de gauche
    			{
    				if($i != 0)
    					echo "</tr>\n";
    				echo "<tr>\n";
    			}
    			echo '<td width="50%" align="center" height="30">';
    			echo '<img src="img/dossier.gif" border="0" />';
    			echo '<a href="' .$url_de_la_scat. '" title="' .$description_de_la_scat. '" class="link_scat_other_annuaire">' .$nom_de_la_scat. '</a>';
     			echo ' <span class="nb_scat_other_annuaire">(' .$nb_de_sites_scat. ')</span>';
    			echo "</td>\n";
    			$i++;
    		}
    		//fin du tableau puis separateur
    		echo '</table>';
    		echo '<br />';
    		echo '<hr width="75%" />';
    		echo '<br />';
    	}
    
    	//on affiche la description de la catégorie
    	$res_texte = mysql_fetch_array($res_descr,MYSQL_ASSOC);
    	if ($res_texte["texte"])
    	//si on a une description a affiche
    	{
    		echo '<p style="text-align:center;" class="text_cat_annuaire">';
    		echo htmlspecialchars($res_texte["texte"]);
    		echo '</p>';
    		echo '<br /><br />';
    	}
    	
    	//affichage de la ligne de liens numerotes pour les pages
    	if ($nb_sites > $nb_sites_on_page)
    	//si il y a trop de sites a afficher sur la page
    	{
    		?>
    <p class="link_numpage_annuaire" style="text-align:center;">
      <?php
    		for ($i=1;$i<$nb_pages;$i++)
    		{
    			if ($i != $page)
    				echo "<a href=\"".id_to_url($cat_id,$res_texte["cat_name"],$i)."\">$i</a>";
    			else
    				echo "$i";
    			echo " - ";
    		}
    		//on affiche le dernier numero de page (sans tiret apres)
    		if ($i == $page)
    			echo $i;
    		else
    			echo "<a href=\"".id_to_url($cat_id,$res_texte["cat_name"],$i)."\">$i</a>";
    		?>
    </p>
    <br />
    <br />
    <?php
    	}
    
    	//on affiche les sites	
    	if (mysql_num_rows ($res_site))
    	{
    		while ($resultat = mysql_fetch_array($res_site,MYSQL_ASSOC))
    			affiche_site($resultat,'index');
    	}
    	echo "<br /><br />\n";
    	//affichage de la ligne de liens numerotes pour les pages
    	if ($nb_sites > $nb_sites_on_page)
    	//si il y a trop de sites a afficher sur la page
    	{
    		?>
    <p class="link_numpage_annuaire" style="text-align:center;">
      <?php
    		for ($i=1;$i<$nb_pages;$i++)
    		{
    			if ($i != $page)
    				echo "<a href=\"".id_to_url($cat_id,$res_texte["cat_name"],$i)."\">$i</a>";
    			else
    				echo "$i";
    			echo " - ";
    		}
    		//on affiche le dernier numero de page (sans tiret apres)
    		if ($i == $page)
    			echo $i;
    		else
    			echo "<a href=\"".id_to_url($cat_id,$res_texte["cat_name"],$i)."\">$i</a>";
    		?>
      <?php
    	}
    
    	//on affiche les sites présent dans les sous catégorie
    	if (mysql_num_rows ($res_site_cat))
    	{
    		while ($resultat = mysql_fetch_array($res_site_cat,MYSQL_ASSOC))
    			affiche_site($resultat,'new');
    	}
    	echo "<br /><br />\n";
    	//affichage de la ligne de liens numerotes pour les pages
    	if ($nb_sites > $nb_sites_on_page)
    	//si il y a trop de sites a afficher sur la page
    	{
    		?>
    </p>
    <br />
    <br />
    <?php
    	}	
    	if (!mysql_num_rows($res_site) and !mysql_num_rows($res_scat) ) //pas de site dans la categorie ni de sous categorie
    	{
    		?>
    <p style="text-align:center;" class="no_site_in_cat_annuaire"> Pas encore de sites dans cette catégorie ! <br />
      Profitez en pour y ajouter votre site si il correspond à cette catégorie </p>
    <?php
    	}
    
    	//fin de la connexion
    	mysql_close($lk);
    }   
    
    include ("bas.php"); //pied de la page 
    //fichier qui contient tout ce qui doit venir avant le code de l'annuaire (menu de droite....)
    include("after.php");
    
    ?>
    
    
     
  5. robin23s
    robin23s Nouveau WRInaute
    Inscrit:
    9 Août 2009
    Messages:
    3
    J'aime reçus:
    0
    Aide php un petit coup de pouce ?

    Personne pour me donner un petit coup de pouce ? :oops: :oops:
     
Chargement...
Similar Threads - Aide php mysql Forum Date
Regrouper des expressions qui se ressemblent, en PHP ou MySQL, à l'aide Développement d'un site Web ou d'une appli mobile 6 Mars 2011
[PHP/MYSQL] Besoin d'aide pour la simplification d'une requete Développement d'un site Web ou d'une appli mobile 9 Juillet 2009
Aide pour optimiser l'écriture d'une requete PHP/MYSQL Développement d'un site Web ou d'une appli mobile 1 Mars 2007
[PHP/MYSQL] Besoin d'aide dans une requête Administration d'un site Web 17 Juin 2005
Besoin d'aide sur du code php/mysql Administration d'un site Web 24 Janvier 2005
Demande d'aide php Développement d'un site Web ou d'une appli mobile 4 Février 2021
Besoin d'aide pour requête SQL PHP Développement d'un site Web ou d'une appli mobile 12 Novembre 2016
Aide php pour Traiter les Urls des réseaux sociaux Développement d'un site Web ou d'une appli mobile 9 Mai 2015
Besoin d'aide avec Phpmailer Développement d'un site Web ou d'une appli mobile 6 Juin 2013
Aide sur une fonction wordpress (php) Développement d'un site Web ou d'une appli mobile 11 Septembre 2012
Demande d'aide sur un "souci" serveur en PHP avec les URLs Développement d'un site Web ou d'une appli mobile 31 Juillet 2012
[Forum PHPBB] Besoin d'aide Développement d'un site Web ou d'une appli mobile 23 Juillet 2012
Aide pour un fichier en php Développement d'un site Web ou d'une appli mobile 11 Avril 2012
Aide sur script PHP Développement d'un site Web ou d'une appli mobile 4 Avril 2012
Aide pour des conditions php Développement d'un site Web ou d'une appli mobile 31 Janvier 2012
aide site avec wordpress, php Développement d'un site Web ou d'une appli mobile 11 Janvier 2012
Aide pour optimiser mon forum phpbb Débuter en référencement 18 Mai 2011
aide sur script galerie php Développement d'un site Web ou d'une appli mobile 13 Février 2011
Gros problème jai suprimer phpbb_config besoin d'aide Développement d'un site Web ou d'une appli mobile 9 Septembre 2010
1&1 mutualisé : aide optimisation + supprimer affichage erreur php URL Rewriting et .htaccess 15 Juin 2010