Avatar billede mesteren_selv Nybegynder
17. april 2005 - 16:53 Der er 18 kommentarer og
1 løsning

Nægter at udskrive variabel

Hey derude...

Kan nogen fortælle mig hvorfor dette script udskriver $sidetal og /, men ikke $sider:

$sidetal = ($offset+$range)/$range;
$sider = $antal/$range;
echo $sidetal." / ".$sider;

Det lader til at være $antal der er problemet, den er defineret således:

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM tabel"),0);

På forhånd tak, Mesteren
Avatar billede hyberpreprocessor Nybegynder
17. april 2005 - 16:55 #1
prøv:

var_dump($antal); for at se hvad den retunere, evt. post værdien herind.
Avatar billede mesteren_selv Nybegynder
17. april 2005 - 17:00 #2
Hvor skal den sidde i scriptet?
Avatar billede hyberpreprocessor Nybegynder
17. april 2005 - 17:02 #3
Det har intet med dit script at gøre, det er bare en hjælp til debugging.

Den skal bare placeres efter du har defineret $antal.
Avatar billede mesteren_selv Nybegynder
17. april 2005 - 17:08 #4
Hvad sker der så? Umiddelbart intet
Avatar billede barklund Nybegynder
17. april 2005 - 17:10 #5
Prøv blot dette:

$antal = mysql_result(mysql_query("SELECT COUNT(*) FROM tabel"),0);
var_dump($antal);
$sidetal = ($offset+$range)/$range;
$sider = $antal/$range;
var_dump($sider);
echo $sidetal." / ".$sider;

De to var_dump's outputter debug-information direkte til browseren.
Avatar billede hyberpreprocessor Nybegynder
17. april 2005 - 17:14 #6
mesteren_selv

Jo der sker noget, var_dump retunere noget tekst, hvor der står hvad $antal indeholder, post det herind hvis du ikke selv kan tolke det.
Avatar billede mesteren_selv Nybegynder
17. april 2005 - 17:14 #7
Okay... Hmmm... Den siger egentlig at der ikke er noget galt...
Avatar billede barklund Nybegynder
17. april 2005 - 17:16 #8
Hvad giver en var_dump af $sider så? Har den en værdi?
Avatar billede mesteren_selv Nybegynder
17. april 2005 - 17:18 #9
Jaja... Den har pludselig den værdi den skulle have haft fra starten... Jeg tjekker lige om det også er tilfældet hvis jeg fjerne var_dump'sne igen...
Avatar billede mesteren_selv Nybegynder
17. april 2005 - 17:19 #10
Nej... Det er da mega underligt...
Avatar billede hyberpreprocessor Nybegynder
17. april 2005 - 17:20 #11
var_dump laver intet andet end at vise værdien, de kan ikke ændre på noget.
www.php.net/var_dump

Men kunne du ikke poste dumpet herind, så vi også kan se det.
Hvis du f.eks. henter en string, så er det svært at dividere med en integer.
Avatar billede mesteren_selv Nybegynder
17. april 2005 - 17:23 #12
Det er nok det, prøv at se:

string(2) "12" float(2.2) 1 / 2.2

Det er Outputtet... Så skulle jeg også gerne have den til at lave sig om til integer, så der ingen decimal er!
Avatar billede barklund Nybegynder
17. april 2005 - 17:24 #13
Prøv med

$antal = intval(mysql_result(mysql_query("SELECT COUNT(*) FROM tabel"),0));
var_dump($antal);
$sidetal = ($offset+$range)/$range;
$sider = round($antal/$range);
var_dump($sider);
echo $sidetal." / ".$sider;
Avatar billede hyberpreprocessor Nybegynder
17. april 2005 - 17:26 #14
forresten hvis det er paging du har gang i , så bruge mysql_num_rows() på dit query istedet, det er meget nemmere at arbejde med.
Avatar billede mesteren_selv Nybegynder
17. april 2005 - 17:29 #15
Nu har jeg lavet:
$antal = intval(mysql_result(mysql_query("SELECT COUNT(*) FROM tabel"),0));
$sidetal = ($offset+$range)/$range;
$sider = intval(($antal+$range)/$range);
var_dump($antal);
var_dump($sider);
echo $sidetal." / ".$sider;

og Udskriften bliver:

int(12) int(2) 1 / 2

som den helst skulle være
Avatar billede mesteren_selv Nybegynder
17. april 2005 - 17:29 #16
Så er den hjemme... Point?
Avatar billede barklund Nybegynder
17. april 2005 - 17:31 #17
Finfin :)

Og du får samme output uden var_dump's - formoder jeg :)
Avatar billede hyberpreprocessor Nybegynder
17. april 2005 - 17:31 #18
du kan også caste dine værdier med (int) hvis du en anden gang skulle for brug for det.
Avatar billede mesteren_selv Nybegynder
17. april 2005 - 17:32 #19
Lige præcis...
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