PHP SQL MSSQL : mon COUNT n'a qu'un seul doigt !!

PHP SQL MSSQL : mon COUNT n'a qu'un seul doigt !! - Programmation

Marsh Posté le 26-11-2001 à 15:50:41    

:)  
 
bah oui, qd je tente un COUNT, il m'affiche toujours 1, que la base soit vide ou remplie un peu ou bcp ...
 
legerement deprimant n'est ce pas ? :D
 
voici ma portion de code :
 
 $sql_count  = "SELECT COUNT (*) FROM COMINT.dbo.MESSAGE";
 $res_count = odbc_exec($con, $sql_count);
 
 $numrows = odbc_num_rows ($res_count);
 echo "numrows = $numrows";
 
 odbc_close($con);

 
so, vous voyez ce qui cloche ?
si j'affiche simplement $res_count, j'ai un beau "ressource id#2" a l'ecran :??:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 26-11-2001 à 15:50:41   

Reply

Marsh Posté le 26-11-2001 à 15:53:14    

odbc_num_rows ($res_count); ne te renvoie pas le nombre de lignes de ta requete ?
qui est bien 1 dans le cas present...
pour avoir le valeur du count il faut lire le contenu de cette ligne, non ?

Reply

Marsh Posté le 26-11-2001 à 16:00:58    

BENB a écrit a écrit :

odbc_num_rows ($res_count); ne te renvoie pas le nombre de lignes de ta requete ?
qui est bien 1 dans le cas present...
pour avoir le valeur du count il faut lire le contenu de cette ligne, non ?  




 
interessant !
cela voudrait donc dire que j'ai rien compris a odbc_num_rows ?
 
le nombre de lignes de la requete et la valeur du count, c'est pas la meme chose :??: :(


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 26-11-2001 à 16:08:01    

Batman-Fr a écrit a écrit :

 
 
interessant !
cela voudrait donc dire que j'ai rien compris a odbc_num_rows ?
 
le nombre de lignes de la requete et la valeur du count, c'est pas la meme chose :??: :(  




ben ici ta requete c'est un count, donc le resultat de ta requete c'est le count...
 
je connais mal php mais odbc_num_rows a par si c'est mal nomme ca doit renvoyer le nombre de lignes... autrement dis tu fais un count du count...

Reply

Marsh Posté le 26-11-2001 à 16:23:40    

BENB a écrit a écrit :

 
ben ici ta requete c'est un count, donc le resultat de ta requete c'est le count...
 
je connais mal php mais odbc_num_rows a par si c'est mal nomme ca doit renvoyer le nombre de lignes... autrement dis tu fais un count du count...  



je confirme, un select count * renvoie une table d'une ligne/d'une colonne qui contient le résultat.
 
edit : avec mysql on peut faire un mysql_fetch_row() sur le résultat, qui renvoie un tableau, le nombre de lignes est alors la première case du tableau. il doit y avoir l'équivalent avec odbc..xxx

 

[edtdd]--Message édité par youdontcare--[/edtdd]

Reply

Marsh Posté le 26-11-2001 à 16:30:11    

Je confirme :  
SELECT COUNT ... Ne renvoie qu'une ligne contenant la valeur du count.
odbc_num_rows() Renvoie le nombre de ligne de ta requête, donc ICI 1.
 
Cependant : http://www.php.net/manual/fr/funct [...] m-rows.php
Attention avec ODBC, odbc_num_rows() ne fonctionne pas bien avec toutes les bases de données. Mais dans ton cas çà a l'air bon !


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

Marsh Posté le 26-11-2001 à 16:30:43    

donc apres je fais un count($numrows) c'est ca ? :)


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 26-11-2001 à 16:36:01    

Non, fais çà :
 
$sql_count  = "SELECT COUNT (*) FROM COMINT.dbo.MESSAGE";  
$res_count = odbc_exec($con, $sql_count);  
if(odbc_fetch_row($res_count))
{
   $numrows=odbc_result($res_count,1);  
   echo "numrows = $numrows";  
}
else
   echo "Erreur ...";
odbc_close($con);  
 
odbc_fetch_row($res) provoque la lecture d'une ligne de résultat $res.
odbc_result($res, $n) Lit la colonne $n du résultat $res.
 
 
http://www.php.net/manual/fr/funct [...] ch-row.php


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

Marsh Posté le 26-11-2001 à 17:53:08    

:jap: ca marche
 
mais je ne comprends pas comment ...
en fait, je n'arrive pas a imaginer la "structure" du resultat ...
 
le nb de lignes est situe a la 1ere ligne du resultat de mon odbc_fetch_row ?
 
 :pt1cable:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 26-11-2001 à 17:56:41    

bon, je viens de "scanner le resultat" et il n'y a qu'une seule et unique ligne ... je suis totalement perdu !
 
pourquoi php ne renvoit il pas directement un nombre ??
 
ou alors j'ai pas assez dormi et quelque chose d'enorme m'echappe (encore oui je sais :D) ??


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Marsh Posté le 26-11-2001 à 17:56:41   

Reply

Marsh Posté le 26-11-2001 à 18:07:55    

tout simplement parce que tout résultat est renvoyé sous forme d'une table.
 
je ne comprends pas ce que tu trouves choquant d'avoir le résultat stocké dans une table 1x1, c'est juste la façon de bosser de la base de données. point. :)

Reply

Marsh Posté le 26-11-2001 à 21:08:21    

:jap:  
 
ce que j'adore sur ce forum, c'est qu'on va tjrs au dela de la question :D
 
c'est vraiment appreciable  :sol:


---------------
Tout ou rien mais rien que tout ! feed-back : http://forum.hardware.fr/forum2.ph [...] ost=121391
Reply

Sujets relatifs:

Leave a Replay

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