Avatar billede Hans1 Praktikant
17. januar 2011 - 08:44 Der er 19 kommentarer og
1 løsning

Tælle antal funde hits

Hvordan i alverden gør jeg hvis jeg vil, udskrive antal funde hits, i databasen når jeg bruger følgende kode?

[code]
$sql = 'SELECT * FROM shop_items WHERE id = '.$id;
$result = $db->query($sql);
$row = $result->fetch();
extract($row);
[/code]

Jeg tænker at det måske kunne være noget med: num_rows()
Avatar billede Hans1 Praktikant
17. januar 2011 - 08:46 #1
hmm der er nogen tegn eksperten ikke kan udskrive...
Jeg prøver igen:

$sql = 'SELECT * FROM shop_items WHERE id = '.$id;
$result = $db->query($sql);
$row = $result->fetch();
extract($row);
Avatar billede repox Seniormester
17. januar 2011 - 08:54 #2
Det kan vi ikke vide - det lader ikke til at være mysqli du bruger - du må anvende et eller andet DAL, så løsningen må ligge i det objekt du bruger som abstraktionslag.
Avatar billede Hans1 Praktikant
17. januar 2011 - 08:58 #3
Aha kan det være den fil jeg har her: mysql.class.php ?

http://www.myupload.dk/showfile/7396074ea39.txt/
Avatar billede Hans1 Praktikant
17. januar 2011 - 09:02 #4
Query

function query($sql) {
        if (!$queryResource=mysql_query($sql,$this->dbConn))
            trigger_error ('Query failed: '.mysql_error($this->dbConn).
                          ' SQL: '.$sql);
        return new MySQLResult($this,$queryResource);
    }
}

Fetch:

function fetch () {
        if ( $row=mysql_fetch_array($this->query,MYSQL_ASSOC) ) {
            return $row;
        } else if ( $this->size() > 0 ) {
            mysql_data_seek($this->query,0);
            return false;
        } else {
            return false;
        }
    }
Avatar billede repox Seniormester
17. januar 2011 - 09:05 #5
Ja, det kunne det nemt have været - men den indeholder jo ingenting? Et par enkelte funktioner og den du leder efter er endda navngivet ret tåbeligt i forhold til mysql/mysqli's egne.

Den du skal bruge er $result->size().
Den returner antallet af rækker i dit resultat.

Må jeg anbefale dig at kigge på mysqli i stededet?
http://php.net/mysqli

Med den kan du stadig opnå et OOP lag i MySQL kommunikationen, du får sikkerheden bag prepared statements.
Avatar billede Hans1 Praktikant
17. januar 2011 - 09:15 #6
Jeg er slet ikke inde i det her.
Skal: $result->size() insættes der hvor SELECT koden er eller i mysql.class.php ?
Avatar billede repox Seniormester
17. januar 2011 - 09:26 #7
Der hvor SELECT koden er.

$sql = 'SELECT * FROM shop_items WHERE id = '.$id;
$result = $db->query($sql);
$antal_hits = $result->size();
$row = $result->fetch();
extract($row);
Avatar billede Hans1 Praktikant
17. januar 2011 - 09:42 #8
Så uderskriver den: 1 1 1 1
hvis den findes 4 resultater...
Avatar billede Hans1 Praktikant
17. januar 2011 - 09:46 #9
Hvis den kunne udskrive 4 så ville jeg være glad :)
Avatar billede Hans1 Praktikant
17. januar 2011 - 09:48 #10
1 2 3 4

Eller

4

(hvis altså der findes 4 resultater)
Avatar billede kentora Nybegynder
17. januar 2011 - 10:23 #11
Det virker som om du har dit query inde i en while?

Hvis du burde du kunne sætte en var $count til 0, og så ændre
$antal_hits = $result->size(); til
$count = $count + $result->size();
Avatar billede Hans1 Praktikant
17. januar 2011 - 10:39 #12
Altså sådan her:

$count = '0';
$count = $count + $result->size();
Avatar billede kentora Nybegynder
17. januar 2011 - 10:43 #13
Du skal skrive $count = 0; (for integer) uden for det while loop jeg gætter på dit query er i.
Avatar billede mcb2001 Nybegynder
17. januar 2011 - 10:58 #14
Hvad med bare at tælle dine resultater?

$sql = 'SELECT * FROM shop_items WHERE id = '.$id;
$result = $db->query($sql);
$antalresultater = mysql_num_rows($result);


eller lav din select om til:
'SELECT COUNT(*) FROM shop_items WHERE id = '.$id;

Så får du bare et tal retur der er antallet af rows...
Avatar billede Hans1 Praktikant
17. januar 2011 - 10:59 #15
Tak det virker perfekt
Avatar billede mcb2001 Nybegynder
17. januar 2011 - 11:01 #16
hvem skriver du til?

og husk at give point når dit problem er løst
Avatar billede Hans1 Praktikant
17. januar 2011 - 11:01 #17
Takket var til kentora.

mcb2001> har prøvet dette men så udskriver den ikke tingene fra databsen.

Og omkring COUNT så vil jeg ikke kun ha talt dem. men også udskrevet.
Avatar billede Hans1 Praktikant
17. januar 2011 - 12:05 #18
kentora + repox smid et svar
Avatar billede repox Seniormester
18. januar 2011 - 08:39 #19
Svar...
Avatar billede mcb2001 Nybegynder
08. februar 2011 - 12:51 #20
er det ikke på tide at lukke dit spørgsmål?
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