Avatar billede yezbarh Nybegynder
18. oktober 2005 - 15:36 Der er 12 kommentarer og
1 løsning

Count fremfor mysql_num_rows

Hvordan vil det se ud at bruge count(*) istedet for num_rows i denne sætning:

$da = mysql_query("SELECT ip FROM ban WHERE ip  = '$ipa'");
if (mysql_num_rows($da) == 0) {


-- fx?
Avatar billede jaw Nybegynder
18. oktober 2005 - 15:38 #1
$da = mysql_query("SELECT COUNT(*) as antal FROM ban WHERE ip  = '$ipa'");
if(mysql_result($da, 0) == 0) {
Avatar billede zorkmontana Nybegynder
18. oktober 2005 - 15:53 #2
Man kan oss!

$da = mysql_query("SELECT ip as antal FROM ban WHERE ip  = '$ipa'");
$data = mysql_fetch_assoc($da);
if(count($data) == 0) {
Avatar billede jaw Nybegynder
18. oktober 2005 - 15:55 #3
Eller:
$da = mysql_query("SELECT COUNT(*) as antal FROM ban WHERE ip  = '$ipa'");
$data = mysql_fetch_assoc($da);
if($data['antal'] == 0) {
Avatar billede yezbarh Nybegynder
18. oktober 2005 - 16:13 #4
og svar? :)
Avatar billede jaw Nybegynder
18. oktober 2005 - 16:15 #5
Svar :) - men hvilken løsning brugte du?
Avatar billede yezbarh Nybegynder
18. oktober 2005 - 16:23 #6
Hvilken vil i sige er bedst, hvis man har et stort site, og man skal ungå at hente osv for meget?

Hvilken vil i helst bruge?
Avatar billede jaw Nybegynder
18. oktober 2005 - 16:25 #7
Hvis du kun vil bruge data til din if, så er det klart mit første forslag der er bedst. Hvis du derimod skal bruge data + antallet til noget, så vil jeg sige mit forslag nr. 2.

Altså mit nr. 2 kunne jo kombineres til:
$da = mysql_query("SELECT felt2, felt2, COUNT(*) as antal FROM ban WHERE ip  = '$ipa'");
Avatar billede yezbarh Nybegynder
18. oktober 2005 - 16:34 #8
Hvis man nu skal "tælle" om brugeren eksistere i databasen, det nu mere det.

1. Kan du give et eksempel (det bedste) til at hente antallet af rækker, fx. Antal brugere: xx

2. Kan du give et eksempel (det bedste) til at tjekke om fx en ting er i tabellen?

På forhånd tak!
Avatar billede jaw Nybegynder
18. oktober 2005 - 16:36 #9
Det vil efter min bedste overbevisning være:

1:
$q = mysql_query("SELECT COUNT(*) as antal FROM brugertabel");
echo mysql_result($q, 0) . " brugere i tabellen";

2:
$q = mysql_query("SELECT COUNT(*) as antal FROM tabel WHERE felt LIKE '%noget%'");
echo mysql_result($q, 0) . " forekomster af rækker hvor felt indeholdt \"noget\"";
Avatar billede yezbarh Nybegynder
18. oktober 2005 - 16:47 #10
2.1:
$q = mysql_query("SELECT COUNT(*) as antal FROM ban WHERE ip LIKE '%$ip%'");
  if(mysql_result($q,0) > 0)
{
  echo "Du er i databasen";
} else {
  echo "Du er ikke i databasen!";
}


-- sådan?
Avatar billede jaw Nybegynder
18. oktober 2005 - 17:01 #11
Nah, ville ikke bruge LIKE i sådan en, da ip jo kun kan være ip.

$q = mysql_query("SELECT COUNT(*) as antal FROM ban WHERE ip = '$ip'");

... men ellers, så ja.
Avatar billede coderdk Praktikant
18. oktober 2005 - 17:04 #12
mysql_query("SELECT SQL_FOUND_ROWS ip FROM ban WHERE ip  = '$ipa'");
//hiv ting ud
$qh = mysql_query("SELECT FOUND_ROWS() as antal");
$row = mysql_fetch_assoc( $qh );
echo "Der blev fundet i alt $row[antal] rækker";

Det er ikke så hårdt mod databasen...
Avatar billede coderdk Praktikant
18. oktober 2005 - 17:05 #13
Men hvorfor ikke bare bruge mysql_num_rows() ?!
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