Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2543 connectés 

 


Dernière réponse
Sujet : PHP SQL MSSQL : mon COUNT n'a qu'un seul doigt !!
Batman-Fr :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:

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
Batman-Fr :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:
youdontcare 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. :)
Batman-Fr 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) ??
Batman-Fr :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:
Mara's dad 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
Batman-Fr donc apres je fais un count($numrows) c'est ca ? :)
Mara's dad 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 !
youdontcare

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]

BENB

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...

Batman-Fr

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 :??: :(

BENB 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 ?
Batman-Fr :)  
 
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 :??:

Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR