2009-09-04 8 views
0

Mon tableau MySQL est simple. J'ai 3 domaines:Simple SQL - fonction count

  • un index
  • une url
  • un titre

constituant 20 dossiers. J'essaie de compter le nombre de lignes pour que je puisse paginer avec PHP. Mais count (*) renvoie plus que le nombre de lignes qui sont là, 142 total. Je reçois les mêmes résultats en comptant l'indice.

Qu'est-ce qui me manque?

modifier

Désolé pour le manque d'information précédente, très franchement, je suis gêné par tout cela et se sentent assez stupide. Mais voilà.

Field: i, int(11), PRI, NOT NULL, auto_increment 
Field: url, text 
Field: title, mediumtext 

Le sql:

select count(*) from $table 

Le php:

require_once('highlights_db.php'); 

$query = "select count(*) from highlights"; 

$connection = mysql_connect($host, $user, $pass); 
mysql_select_db($db); 
$result = mysql_query($query, $connection); 
$pages = mysql_fetch_array($result); 
$pages = floor($pages); 

for($i = 0; $i < $pages; $i++){ 
    echo "<a href=\"\" class=\"page_dot\"></a><br />\n"; 
} 
+2

pouvez-vous publier l'instruction SQL réelle que vous utilisez? –

+0

S'il vous plaît envoyer des messages: DESCRIBE

SELECT * FROM
SELECT COUNT (*) FROM

+0

aucune instruction SQL, aucune description de la table (même la relation entre la table est assez) .Comment pouvons-nous vous aider? – ariefbayu

Répondre

1

Comment savez-vous si bien qu'il y a 20 lignes?

Cette requête:

select * from $table 

devrait retourner le même nombre de lignes que ce chiffre vous indique:

select count(*) from $table` 

Si elle ne le fait pas, votre table a probablement été mis à jour entre-temps.

0

Essayez COUNT(i) ou quelque chose de similaire.

+3

COUNT (*) compte le nombre de lignes - période COUNT (Colonne) compte le nombre de lignes où la colonne nommée contient une valeur non NULL Vous pourriez être sur le bon problème - mais votre description de celui-ci laisse quelque chose à désirer –

+0

Edité pour être moins faux. –

0

-vous arrive d'avoir des doublons dans votre table et la comparaison COUNT(*) avec le nombre d'enregistrements renvoyés par une sorte de SELECT DISTINCT?
C'est la seule explication que je peux voir jusqu'à ce que vous postez les requêtes réelles et leurs resultsets ... (à la fois le « compter » un et une « liste » qui vous a fait voir une différence)

0

« pages $ = étage ($ pages); " semble étrange.Est-ce que ce ne serait pas: $pages = floor($pages);?

Je pense que c'est un problème PHP, pas SQL.