PHP SQL MSSQL : mon COUNT n'a qu'un seul doigt !! - Programmation
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 ?
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
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...
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]
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 !
Marsh Posté le 26-11-2001 à 16:30:43
donc apres je fais un count($numrows) c'est ca ?
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
Marsh Posté le 26-11-2001 à 17:53:08
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 ?
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 ) ??
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.
Marsh Posté le 26-11-2001 à 21:08:21
ce que j'adore sur ce forum, c'est qu'on va tjrs au dela de la question
c'est vraiment appreciable
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 ?
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