Avatar billede Slettet bruger
10. januar 2005 - 14:48 Der er 6 kommentarer og
1 løsning

Tæl rækker i datebase - mysql_num_rows

Jeg sidder og laver nogle små projekter til min egen fornøjelse, men når jeg prøver at tælle mine rækker med mysql_num_rows så får jeg denne fejl.

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in d:\server\apache\htdocs\nfl\view.php on line 113
Avatar billede jakoba Nybegynder
10. januar 2005 - 14:59 #1
før du kan tælle rækker med mysql_num_rows må du hente nogen rækker at tælle

$resultatset = mysql_query( "SELECT * FROM tabelnavn" );
              // henter nogle rækker fra tabellen
$antal_rekker = mysql_num_rows( $resultatset );
                // tæller hvormange rækker der blev hentet

Men det er en grumme dyr måde at tælle chromage rækker der er i en tabel. Alle data i alle rækker skal jo flyttes fra databasen til php og set spilder en asse tid.

Når det er 'en hulens masse rækker i tabellen' du ønsker at tække er det meget bedre at bruge MySQL's indbyggede tællefunktion:

$resultatset = mysql_query( "SELECT COUNT(*) FROM tabelnavn" );
              // henter ikke data, men blot antallet af rækker
$antal_rekker = mysql_result( $resultatset, 0, 0 );
                //  dataværdien i række 0 position 0 (den eneste) er antallet

mvh JakobA
Avatar billede Slettet bruger
10. januar 2005 - 15:09 #2
Burde det her ikke virke?

<?php
$connect = mysql_connect("localhost", "root", "");
mysql_select_db("nfl", $connect) or die(mysql_error());

$resultatset = mysql_query( "SELECT * FROM nfl_nyhedsscanner" );

if (mysql_num_rows($resultatset) > 0) {
    echo "Mere end 1 række";
}
else {
    echo "Ingen rækker";
}
?>
Avatar billede hmortensen Nybegynder
10. januar 2005 - 16:39 #3
Hvor vidt du bør bruge COUNT() i mySQL eller mysql_num_rows(), afhænger af om du skal bruge dataen.

Hvis du skal bruge den, kan du lige så godt bruge php funktionen, men ellers brug count().
Avatar billede Slettet bruger
10. januar 2005 - 18:49 #4
Jeg skal også bruge dataen fra tabellen, men den bliver ved med at lave den fejl, når jeg bruger num_rows. Kan det være min server, som laver fejl?
Avatar billede hmortensen Nybegynder
10. januar 2005 - 19:04 #5
Fejlen tyder på fejl i din query. Prøv med or die(mysql_error()); og se hvad den siger.

Altså her:
$resultatset = mysql_query( "SELECT * FROM nfl_nyhedsscanner" ) or die(mysql_error());
Avatar billede Slettet bruger
10. januar 2005 - 19:20 #6
Jeg havde byttet om på NFL og NLF i min database :)

Lægger du lige et svar?
Avatar billede hmortensen Nybegynder
10. januar 2005 - 19:22 #7
Derfor, altid die(mysql_error()) på, mens der testes, ellers kan man sidde og stirre sig blind på en dum fejl, som den der.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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