Avatar billede lademan Novice
16. maj 2007 - 10:04 Der er 16 kommentarer og
1 løsning

ODBC: Tæl antal rækker

Hej eksperter.

Hvordan henter jeg antallet af rækker i et ODBC-udtræk, som fx dette:

$result = odbc_exec($connection,"SELECT Artikel FROM tblArtikelType");

Jeg er ude efter simpel og sikker kode ;-)
Avatar billede lademan Novice
16. maj 2007 - 10:10 #1
Er det her en god og "serverfornuftigt" løsning?

odbc_fetch_into($result, $count, 1);
Avatar billede lademan Novice
16. maj 2007 - 10:15 #2
Nej det virker heller ikke...
Avatar billede lademan Novice
16. maj 2007 - 10:17 #3
Databasen er MSSQL
Avatar billede arne_v Ekspert
16. maj 2007 - 10:58 #4
odbc_num_rows($result)

maaske
Avatar billede lademan Novice
16. maj 2007 - 11:36 #5
Nej desværre ikke...

SOm Php.net skriver: "Note: Using odbc_num_rows() to determine the number of rows available after a SELECT will return -1 with many drivers"
Avatar billede lademan Novice
16. maj 2007 - 11:40 #6
Der må være en løsning på "problemet"...
Avatar billede arne_v Ekspert
16. maj 2007 - 12:17 #7
hvis driveren ikke understoetter den funktion, saa er der nok kun en loesning:

lav en SELECT COUNT(*) foerst
Avatar billede lademan Novice
17. maj 2007 - 08:31 #8
Ved i hvilken driver der skal downloades for at det virker?
Avatar billede arne_v Ekspert
17. maj 2007 - 15:09 #9
har du proevet med mssql_ funktionerne ?
Avatar billede lademan Novice
18. maj 2007 - 12:14 #10
Arne, nej det har jeg ikke. Hvilke tænker du på?
Avatar billede arne_v Ekspert
18. maj 2007 - 15:08 #11
Avatar billede lademan Novice
19. maj 2007 - 18:20 #12
Tak! Nu spørger jeg måske lidt dumt, men kan jeg bruge mssql_ funktioner, når jeg ellers bruger ODBC? Skal der m.a.o. installeres noget specielt for at bruge mssql_ funktionerne?
Avatar billede arne_v Ekspert
19. maj 2007 - 18:31 #13
nej - du skal vælge mellem odbc og mssql

ja - mssql kræver enten sqlclient eller tds
Avatar billede lademan Novice
22. maj 2007 - 19:41 #14
Er dette en dårlig løsning på problemet?

$result = odbc_exec($connection,"SELECT * FROM test");     
if (odbc_fetch_row($result, 1)){ // Der findes ét eller flere resultater
    odbc_fetch_row($result, 0); // Gå tilbage til første række
    while (odbc_fetch_array($result)){
        ...
    }
else print "<p>Ingen data</p>";
}
Avatar billede lademan Novice
22. maj 2007 - 22:13 #15
.
Avatar billede arne_v Ekspert
23. maj 2007 - 04:11 #16
nå - ingen interesse for et svar
Avatar billede lademan Novice
23. maj 2007 - 14:44 #17
Her er en optimal løsning til fri afbenyttelse for andre ODBC-brugere, der får brug for at tælle antallet af tilgængelige rows i et udtræk:

function countRows($sql, $con) {

    $var = explode("FROM", $sql);
    $str = "SELECT COUNT(*) FROM " . $var[1];

    $var = explode("GROUP", $str);
    $var = explode("ORDER", $var[0]);
    $str = $var[0];

    $count = odbc_exec($con, $str);
    odbc_fetch_row($count, 1);
    $rowcount = odbc_result($count, 1);
    odbc_free_result($count);

    return $rowcount;
    }
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester