Eviter un COUNT avant un SELECT

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Eviter un COUNT avant un SELECT

par zeus » 30 août 2006, 17:29

1/ affiche nous l'erreur

2/ je suis de l'avis de mes collègues, ton erreur doit venir d'un mysql_fetc_... après son exécution.
Un select qui ne retourne aucune ligne ne déclenche pas une erreur ... :roll:

par ouckileou » 30 août 2006, 17:28

Ben si, j'obtiens une erreur, sinon, je n'aurais pas posée cette question.
Une requête à le droit de ne renvoyer aucun résultat.

Tu as posté 2 messages en parlant de cette erreur et il ne te viendrait pas à l'esprit de nous la donner par hasard ? :roll:

par Invité » 30 août 2006, 17:09

Ben si, j'obtiens une erreur, sinon, je n'aurais pas posée cette question.

par iclo » 30 août 2006, 17:02


Si x n'est pas présent dans la colonne c, j'obtiens une erreur dans ma requête.
Tu obtiens un résultat vide, pas une erreur. et donc mysql_num_rows() te reverra 0

par Invité » 30 août 2006, 16:58

Merci, mais mysql_num_rows() ne m'est pas utile, puisque c'est une erreur lors de la requête.

SELECT a FROM b WHERE c=x

Si x n'est pas présent dans la colonne c, j'obtiens une erreur dans ma requête.

Donc pour éviter ça, je suis obligé de faire un COUNT préalable, ma question était de comment éviter cette prérequête.

par ouckileou » 30 août 2006, 16:00

if (mysql_num_rows() > 0) {
  // afficher messages
} else {
  echo 'Aucun messages';
}

Eviter un COUNT avant un SELECT

par spirou » 30 août 2006, 14:39

Bonjour,

Encore une question, j'arrête pas je sais :P

J'aimerais éviter un COUNT dans une table, avant un SELECT.
C'est un peu une requête inutile.

Par exemple, pour les messages lus/nonlus d'un forum.

Le futur membre s'inscrit et affiche l'index du forum, si je ne fait pas un COUNT avant de sélectionner les sujets lus ayant pour id celui du nouveau membre, je me retrouve avec une erreur puisque ce membre n'a encore lu aucun sujet, logique puisque le SELECT ne retourne aucun résultat.

Donc, y'a t-il une astuce, à part cacher les messages d'erreurs qui puisse me faire sélectionner dans la table seulement si au moins une ligne existe, du même genre que IF EXISTS pour un DROP, CREATE table ?