mysql_query

Tags:    php


Fold kodeboks ind/udKode 


Jeg har et lille problem !
Hvis databasen er tom, få jeg en tom side :-(
Hvad skal jeg gøre, så den skal skrive "database er tom" ? ?






Indlæg senest redigeret d. 15.05.2010 18:42 af Bruger #8336
Du kan bruge mysql funktionen mysql_num_rows til at tælle hvor mange rows der er i din database og så bruge en else-if sætning til at finde ud af om der er flere end nul rows i databasen.

Fold kodeboks ind/udKode 


Det skulle gerne virke :)



Mange tak for hjælpen :bounce:



Mange tak for hjælpen :bounce:

Det er bedre at bruge "SELECT COUNT(*)" til den slags, så du ikke genererer et stort resultatsæt:

Fold kodeboks ind/udKode 




Hvorfor ville det være bedre?

Det han ønsker er jo netop at liste det der er i gæstebogen. Så først at spørge hvor mange rækker der er og derefter at bede om alle rækker er vel næppe bedre end at bede om alle rækker (0 hvis der ikke er nogen), og teste om der var nogen rækker.



Hvorfor ville det være bedre?

Det han ønsker er jo netop at liste det der er i gæstebogen. Så først at spørge hvor mange rækker der er og derefter at bede om alle rækker er vel næppe bedre end at bede om alle rækker (0 hvis der ikke er nogen), og teste om der var nogen rækker.


Nu ville han KUN vide om databasen var tom, og at bruge SELECT COUNT(*) er i det tilfælde bedre. Hvis han efterfølgende vil vise al indhold, så er det korrekt at num_rows er bedre, men hvad så hvis der er en million rækker ?
De skal så være i hukommelsen.

MySQL folkene selv diskuterer samme problematik (hvis man kan kalde det det) her: http://forums.mysql.com/read.php?115,55854,55854



Det er bedre at bruge COUNT(1) da den ikke henter noget data fra resultat sættet. Kan speede processen væsentligt op hvis det er på en større tabel.



Det er bedre at bruge COUNT(1) da den ikke henter noget data fra resultat sættet. Kan speede processen væsentligt op hvis det er på en større tabel.


Hvis der er et index på tabellen bliver kun dét brugt...det samme er tilfældet med count(1).
http://www.daniweb.com/forums/thread70800.html

Og hvis det er en MyISAM tabel bliver indholdet ikke engang læst, for der bliver 'select count(*)' set som et særligt tilfælde, og MyISAM kender det totale antal af rækker i tabellen.



Jeg vil nu mene at hvis du tager udgangspunkt i den kode han viser er det ret klart at han vil vise alle poster. Men er løbet ind i problemet at hvis der ingen poster er bliver intet vist.



t