15. august 2010 - 21:23Der er
23 kommentarer og 1 løsning
Count problem
Hej eksperter,
Jeg kan ikke få nedenstående kode til at give mig antallet i hver celle. (Count[0]) Det er kun den nederste række der giver et resultat. Kan i hjælpe ??
$tsql = "SELECT * FROM tbl where dt > '$idag' and customer_id = '$customerid' order by id"; $stmt = sqlsrv_query( $conn, $tsql);
// Antal emner tilbage $result = sqlsrv_query($conn, "SELECT count(*) FROM tbl_c where customer_id = '$customerid' and cam = '".$row["id"]."'"); $count = sqlsrv_fetch($result);
// Antal emner tilbage $result = sqlsrv_query($conn, "SELECT count(*) FROM tbl_c where customer_id = '$customerid' and cam = '".$row["id"]."'"); $count = sqlsrv_fetch_array($result);
Sikker på det ikke er PHP der er problemet her? Nu er det ved at være en del år siden jeg sidst har leget med det.
Men hvad mener du også med, at det kun er den sidste rækker den giver det rigtige resultat? Din count bliver jo kørt for hvert gennemløb, og så giver den jo det antal som der er ... vel og mærket det samme hvis $row["id"] også er det samme.
Alle på nær den nederste er blank. Den nederste giver det korrekte antal. Og ja, jeg løber dem igennem en af gangen og counter den. Kan heller ikke se hvad der er galt, men blanke er de
Print din sql sætning ud så ... inde i din app, så du kan se den på dine hjemmeside eller sæt et break point ( hvis du har opsæt et udviklings miljø til det ), da din SQL jo må være forkert på en eller anden måde.
Derefter kan du så kører dem i SSMS og se hvad resultat du får der.
En count bør aldrig kunne være blank, da den jo så bare vil count 0 ...
Måske ... uden at være sikker, 0 i php er vist også set som en bool, derfor tror jeg ikke du må skrive 0 ... og ja, du kan måske slet ikke tilgå dens value via index, men prøv at navngiv din column.
"SELECT count(*) AS SomeCount FROM ... " og $count["SomeCount"]
Hvor der er en som døjer med samme problem. Folk mente i tråden problemet lå i Where-statementet, altså din:
where customer_id = '$customerid' and cam = '".$row["id"]."'");
Har du måske prøvet?:
where customer_id = '".$customerid."' and cam = '".$row["id"]."'");
Løsningen i den tråd jeg linker til var faktisk at hans DB Column (dit customer_id eller cam) var defineret som text i stedet for en varchar. Men prøv at læs den og se om den kan give dig svaret (jeg kender desværre ikke meget til PHP, men blev nysgerrig alligevel og søgte derfor på fejlbeskseden).
Prøv nu at udskriv din SQL statement i din app for at se om den er korrekt, og derefter kør den inde i SSMS( Sql Server Management Studio ) eller hvad du nu bruger
Der må være en fejl ... lidt svært at prøve for os da vi ikke har dit setup :-)
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.