Bonjour,
Pour compenser un problème lié au driver odbc (je me connecte à SqlServer2005) :
Je me suis refait ma propre fonction :odbc_num_rows() retourne le nombre de lignes dans un résultat ODBC. odbc_num_rows() retournera -1 en cas d'erreur. Pour les commandes INSERT, UPDATE et DELETE, odbc_num_rows() retourne le nombre de ligne affectées. Pour les commandes SELECT, cela PEUT être le nombre de lignes disponibles, mais ce n'est pas certain.
Note: odbc_num_rows() après un SELECT retournera -1 avec de nombreux pilotes.
le probleme : odbc_fetch_row() lit le 1er résultat contenu dans $result puis place le curseur sur le 2eme résultat et ainsi de suite. Donc, une fois que je connais le nombre de résultat contenu dans $result, j'ai l'air malin, car je ne peux plus avoir les résultats de ma requête......
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 protected function _num_rows($result) { $i=0; while($ligne = odbc_fetch_row($result)){ $i++; } if( $i == 0 ) return -1; else return $i; }
Avez vous une astuce qui me permettrai de passer outre?
Je voudrais dans la mesure du possible ne pas faire 2 requêtes, car je trouve cela inutile. Au pire, je veux bien coder une fonction odbc_data_seek(), si vous avez un bon tuto sur la manipulation de resultat de requete.
Partager