Complètement perdut dans des requètes sql !

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


tryan
WRInaute accro
WRInaute accro
 
Messages: 1536
Inscription: Dim Fév 20, 2005 14:14

Complètement perdut dans des requètes sql !

Message le Mar Déc 18, 2007 23:36

Bonsoir
Je suis un peut pommé dans mes requètes sql :? .
1-Je tente d'afficher le nombre de flux présent dans une catégorie hors le resultat retourné m'affiche le nombre total de sites présent dans cette meme catégorie.
2-Je tente d'afficher les url des flux rss présent dans chaque catégorie mais le resultat m'affiche un <br /> si l'url est vide .
Je ne parvient pas à comprendre mes erreurs :( !
Code: Tout sélectionner
<?php

   //connexion a la BD
   $lk = connection_BD();
   //requete pour trouver le nombre de flux rss présent dans la catégorie
$sql_rss = "SELECT `flux_rss` FROM sites_annuaire WHERE id_cat='$cat_id' ORDER BY id DESC ";
$res_rss = send_sql($sql_rss,"trouver le nombre de flux rss");
$nb_rss = mysql_num_rows($res_rss);
  //requete pour afficher les flux present dans la catégorie
$sql = "SELECT `flux_rss` FROM $T_sites WHERE id_cat='$cat_id' ORDER BY id DESC ";
$res = send_sql($sql,"trouver les flux rss");
      if($nb_rss == 1)
      {
                       echo ' ' .$nb_rss. ' flux rss disponible ';
                }
      else
      {
         echo ' ' .$nb_rss. ' flux rss disponibles' ;
      }
      
   while($result = mysql_fetch_array($res))
   {
      $flux_rss = $result['flux_rss'];


echo '<a href="' .$flux_rss. '" target="_blank">' .$flux_rss. '</a><br />';

   }
   
           
   mysql_close($lk);


?>

Un petit coup de neurone serait le bienvenue.
Merci


biddybulle
WRInaute accro
WRInaute accro
 
Messages: 1469
Inscription: Lun Mai 30, 2005 21:55

Message le Mer Déc 19, 2007 0:01

t as absolument besoin des ' pour encadrer ton champs flux_rss dans ta requete ?

jcaron
WRInaute accro
WRInaute accro
 
Messages: 1199
Inscription: Ven Fév 13, 2004 20:33

Re: Complètement perdut dans des requètes sql !

Message le Mer Déc 19, 2007 0:23

tryan a écrit:1-Je tente d'afficher le nombre de flux présent dans une catégorie hors le resultat retourné m'affiche le nombre total de sites présent dans cette meme catégorie.
Code: Tout sélectionner
//requete pour trouver le nombre de flux rss présent dans la catégorie
$sql_rss = "SELECT `flux_rss` FROM sites_annuaire WHERE id_cat='$cat_id' ORDER BY id DESC ";



Sans connaître le schéma de ta base (ou au moins des tables concernées), on va tenter de deviner... Tu as une table sites_annuaire, et le champ "flux_rss" est non nul ou non vide s'il y a un flux pour le site?

Ca donne suivant le cas:
SELECT count(flux_rss) FROM sites_annuaire WHERE id_cat=?
SELECT count(*) FROM sites_annuaire WHERE id_cat=? AND flux_rss<>''

Et tu obtiens directement le nombre de lignes comme ça, pas besoin de les compter après.

Note que tu dois absolument t'assurer que les variables que tu colles dans la requête SQL ($cat_id) soient parfaitement vérifiées, nettoyées, etc, sinon ça va se finir en injection SQL badaboum.

tryan a écrit:2-Je tente d'afficher les url des flux rss présent dans chaque catégorie mais le resultat m'affiche un <br /> si l'url est vide .
Code: Tout sélectionner
//requete pour afficher les flux present dans la catégorie
$sql = "SELECT `flux_rss` FROM $T_sites WHERE id_cat='$cat_id' ORDER BY id DESC ";
$res = send_sql($sql,"trouver les flux rss");
   while($result = mysql_fetch_array($res))
   {
      $flux_rss = $result['flux_rss'];
echo '<a href="' .$flux_rss. '" target="_blank">' .$flux_rss. '</a><br />';
   }



Il te manque comme qui dirait une petite clause. Encore une fois, on devine:
SELECT flux_rss FROM whatever WHERE id_cat=? AND flux_rss IS NOT NULL ORDER BY id DESC
SELECT flux_rss FROM whatever WHERE id_cat=? AND flux_rss<>'' ORDER BY id DESC

Evidemment, si tu ne prévois pas de mettre en place de la pagination (LIMIT ... OFFSET), tu pourrais faire une seule requête au lieu de deux...

Jacques, qui cherche où est passée sa boule de cristal.


tryan
WRInaute accro
WRInaute accro
 
Messages: 1536
Inscription: Dim Fév 20, 2005 14:14

Message le Mer Déc 19, 2007 13:30

biddybulle a écrit:t as absolument besoin des ' pour encadrer ton champs flux_rss dans ta requete ?

Visiblement non, mais vue que je suis une burne, je me suis servit de phpMyAdmin pour mes requètes et il me sort les ' pour encadrer mon champ.

jcaron, sorry pour la boulle de cristal :lol: , je pensais que c'était suffisant!
Bon j'ai testé et retesté la chose dans tout les sens mais quand on y comprend rien ... on y comprend rien :? !

Donc j'ai ma base avec "sites_annuaire" (colonne de gauche) comprenant plusieurs champs dont "flux_rss".
Dans mes requètes, si je suprime "id_cat='$cat_id'" c'est le nombre total de sites présent qui s'affiche. Avec, c'est le nombre total des sites présent dans la catégorie visé. Moi ce que je cherche, c'est d'afficher le nombre total de flux valide dans cette meme catégorie mais je seche.


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités